@0xsquid/react-hooks 6.4.7-beta.2 → 6.4.7-keplr-btc-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/connectors/bitcoin/errors/index.d.ts +1 -2
- package/dist/core/connectors/bitcoin/errors/index.js +1 -1
- package/dist/core/connectors/bitcoin/errors/index.js.map +1 -1
- package/dist/core/connectors/bitcoin/wallets/index.d.ts +1 -0
- package/dist/core/connectors/bitcoin/wallets/index.js +1 -0
- package/dist/core/connectors/bitcoin/wallets/index.js.map +1 -1
- package/dist/core/connectors/bitcoin/wallets/keplr.d.ts +11 -0
- package/dist/core/connectors/bitcoin/wallets/keplr.js +28 -0
- package/dist/core/connectors/bitcoin/wallets/keplr.js.map +1 -0
- package/dist/core/constants.d.ts +4 -7
- package/dist/core/constants.js +4 -21
- package/dist/core/constants.js.map +1 -1
- package/dist/core/externalLinks.d.ts +1 -1
- package/dist/core/externalLinks.js +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/providers/CosmosProvider.d.ts +1 -1
- package/dist/core/providers/CosmosProvider.js.map +1 -1
- package/dist/core/queries/queries-keys.d.ts +4 -4
- package/dist/core/types/error.d.ts +1 -0
- package/dist/core/types/error.js.map +1 -1
- package/dist/core/types/transaction.d.ts +1 -0
- package/dist/core/types/wallet.d.ts +2 -19
- package/dist/core/types/wallet.js.map +1 -1
- package/dist/core/wallets.d.ts +0 -1
- package/dist/core/wallets.js +9 -1
- package/dist/core/wallets.js.map +1 -1
- package/dist/hooks/chains/useSquidChains.d.ts +0 -1
- package/dist/hooks/chains/useSquidChains.js +4 -23
- package/dist/hooks/chains/useSquidChains.js.map +1 -1
- package/dist/hooks/cosmos/useCosmos.js +20 -15
- package/dist/hooks/cosmos/useCosmos.js.map +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/solana/useSolana.js +2 -8
- package/dist/hooks/solana/useSolana.js.map +1 -1
- package/dist/hooks/store/useWalletStore.d.ts +5 -5
- package/dist/hooks/store/useWalletStore.js +20 -13
- package/dist/hooks/store/useWalletStore.js.map +1 -1
- package/dist/hooks/swap/useSwap.js +3 -3
- package/dist/hooks/swap/useSwap.js.map +1 -1
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js +1 -12
- package/dist/hooks/tokens/useAllConnectedWalletBalances.js.map +1 -1
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.d.ts +5 -4
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js +17 -30
- package/dist/hooks/tokens/useAllTokensWithBalanceForChainType.js.map +1 -1
- package/dist/hooks/tokens/useBalance.d.ts +246 -18
- package/dist/hooks/tokens/useBalance.js +25 -66
- package/dist/hooks/tokens/useBalance.js.map +1 -1
- package/dist/hooks/tokens/useMultiChainBalance.d.ts +2 -2
- package/dist/hooks/tokens/useMultiChainBalance.js +35 -38
- package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeBalance.d.ts +18 -16
- package/dist/hooks/tokens/useNativeBalance.js +56 -121
- package/dist/hooks/tokens/useNativeBalance.js.map +1 -1
- package/dist/hooks/tokens/useNativeTokenForChain.js +4 -6
- package/dist/hooks/tokens/useNativeTokenForChain.js.map +1 -1
- package/dist/hooks/tokens/useSquidTokens.d.ts +11 -2
- package/dist/hooks/tokens/useSquidTokens.js +16 -8
- package/dist/hooks/tokens/useSquidTokens.js.map +1 -1
- package/dist/hooks/transaction/useEstimate.js +1 -1
- package/dist/hooks/transaction/useEstimate.js.map +1 -1
- package/dist/hooks/transaction/useExecuteTransaction.d.ts +2 -0
- package/dist/hooks/transaction/useExecuteTransaction.js +39 -81
- package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -1
- package/dist/hooks/transaction/useGetRoute.d.ts +2 -1
- package/dist/hooks/transaction/useGetRoute.js +2 -2
- package/dist/hooks/transaction/useGetRoute.js.map +1 -1
- package/dist/hooks/transaction/useSingleTransaction.js +1 -1
- package/dist/hooks/transaction/useSingleTransaction.js.map +1 -1
- package/dist/hooks/user/useUserParams.js +1 -1
- package/dist/hooks/user/useUserParams.js.map +1 -1
- package/dist/hooks/wallet/useIntegratorContext.js +1 -1
- package/dist/hooks/wallet/useIntegratorContext.js.map +1 -1
- package/dist/hooks/wallet/useMultiChainWallet.d.ts +3 -1
- package/dist/hooks/wallet/useMultiChainWallet.js +25 -32
- package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -1
- package/dist/hooks/wallet/useSigner.d.ts +2 -2
- package/dist/hooks/wallet/useSigner.js +7 -33
- package/dist/hooks/wallet/useSigner.js.map +1 -1
- package/dist/hooks/wallet/useWallet.d.ts +7 -53
- package/dist/hooks/wallet/useWallet.js +11 -25
- package/dist/hooks/wallet/useWallet.js.map +1 -1
- package/dist/hooks/wallet/useWallets.d.ts +1 -29
- package/dist/hooks/wallet/useWallets.js +1 -5
- package/dist/hooks/wallet/useWallets.js.map +1 -1
- package/dist/provider/index.d.ts +1 -1
- package/dist/provider/index.js +8 -10
- package/dist/provider/index.js.map +1 -1
- package/dist/services/external/rpcService.d.ts +4 -8
- package/dist/services/external/rpcService.js +14 -38
- package/dist/services/external/rpcService.js.map +1 -1
- package/dist/services/internal/assetsService.d.ts +2 -2
- package/dist/services/internal/assetsService.js +4 -8
- package/dist/services/internal/assetsService.js.map +1 -1
- package/dist/services/internal/bitcoinService.d.ts +5 -3
- package/dist/services/internal/bitcoinService.js +9 -1
- package/dist/services/internal/bitcoinService.js.map +1 -1
- package/dist/services/internal/configService.js +2 -7
- package/dist/services/internal/configService.js.map +1 -1
- package/dist/services/internal/cosmosService.d.ts +14 -4
- package/dist/services/internal/cosmosService.js +1 -1
- package/dist/services/internal/cosmosService.js.map +1 -1
- package/dist/services/internal/errorService.d.ts +0 -15
- package/dist/services/internal/errorService.js +4 -34
- package/dist/services/internal/errorService.js.map +1 -1
- package/dist/services/internal/evmService.d.ts +6 -3
- package/dist/services/internal/evmService.js.map +1 -1
- package/dist/services/internal/solanaService.d.ts +6 -3
- package/dist/services/internal/solanaService.js.map +1 -1
- package/dist/services/internal/transactionService.d.ts +1 -0
- package/dist/services/internal/walletService.d.ts +14 -20
- package/dist/services/internal/walletService.js +25 -32
- package/dist/services/internal/walletService.js.map +1 -1
- package/dist/tests/swapConfig.test.js +7 -72
- package/dist/tests/swapConfig.test.js.map +1 -1
- package/package.json +8 -12
- package/dist/core/providers/SuiProvider.d.ts +0 -19
- package/dist/core/providers/SuiProvider.js +0 -15
- package/dist/core/providers/SuiProvider.js.map +0 -1
- package/dist/core/types/rpc.d.ts +0 -10
- package/dist/core/types/rpc.js +0 -2
- package/dist/core/types/rpc.js.map +0 -1
- package/dist/core/types/sui.d.ts +0 -14
- package/dist/core/types/sui.js +0 -2
- package/dist/core/types/sui.js.map +0 -1
- package/dist/hooks/sui/useSui.d.ts +0 -2
- package/dist/hooks/sui/useSui.js +0 -28
- package/dist/hooks/sui/useSui.js.map +0 -1
- package/dist/hooks/sui/useSuiClient.d.ts +0 -9
- package/dist/hooks/sui/useSuiClient.js +0 -16
- package/dist/hooks/sui/useSuiClient.js.map +0 -1
- package/dist/hooks/sui/useSuiWallets.d.ts +0 -7
- package/dist/hooks/sui/useSuiWallets.js +0 -36
- package/dist/hooks/sui/useSuiWallets.js.map +0 -1
- package/dist/services/external/suiRpcClient.d.ts +0 -32
- package/dist/services/external/suiRpcClient.js +0 -80
- package/dist/services/external/suiRpcClient.js.map +0 -1
- package/dist/services/internal/suiService.d.ts +0 -9
- package/dist/services/internal/suiService.js +0 -88
- package/dist/services/internal/suiService.js.map +0 -1
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { ChainType } from "@0xsquid/squid-types";
|
|
2
1
|
import { useMemo } from "react";
|
|
3
2
|
import { useAccount, useWalletClient } from "wagmi";
|
|
4
|
-
import { PhantomConnector, UnisatConnector, } from "../../core/connectors/bitcoin";
|
|
3
|
+
import { KeplrConnector, PhantomConnector, UnisatConnector, } from "../../core/connectors/bitcoin";
|
|
5
4
|
import { useCosmosContext } from "../../core/providers/CosmosProvider";
|
|
6
5
|
import { useSolanaContext } from "../../core/providers/SolanaProvider";
|
|
7
|
-
import { useSuiContext } from "../../core/providers/SuiProvider";
|
|
8
6
|
import { clientToSigner } from "../../core/wagmiConfig";
|
|
9
7
|
import { useSwap } from "../swap/useSwap";
|
|
10
8
|
import { useWallet } from "./useWallet";
|
|
@@ -18,7 +16,8 @@ export const useSigner = () => {
|
|
|
18
16
|
const evmSigner = useEthersSigner({ chainId: Number(fromChain?.chainId) });
|
|
19
17
|
const { cosmosSigner } = useCosmosContext();
|
|
20
18
|
const { signer: solanaSigner } = useSolanaContext();
|
|
21
|
-
const
|
|
19
|
+
const isEvmSignerReady = !!evmSigner;
|
|
20
|
+
const isSolanaSignerReady = !!solanaSigner;
|
|
22
21
|
const { connectedWalletsByChainType } = useWallet();
|
|
23
22
|
const connectedSourceWallet = fromChain?.chainType
|
|
24
23
|
? connectedWalletsByChainType[fromChain.chainType]
|
|
@@ -31,43 +30,18 @@ export const useSigner = () => {
|
|
|
31
30
|
case "phantom": {
|
|
32
31
|
return new PhantomConnector();
|
|
33
32
|
}
|
|
33
|
+
case "keplr": {
|
|
34
|
+
return new KeplrConnector();
|
|
35
|
+
}
|
|
34
36
|
}
|
|
35
37
|
}, [connectedSourceWallet?.wallet?.connectorId]);
|
|
36
|
-
|
|
37
|
-
const isCosmosSignerReady = !!cosmosSigner;
|
|
38
|
-
const isSolanaSignerReady = !!solanaSigner;
|
|
39
|
-
const isBitcoinSignerReady = !!bitcoinSigner;
|
|
40
|
-
const isSuiSignerReady = !!suiSigner;
|
|
41
|
-
const isSignerReady = useMemo(() => {
|
|
42
|
-
if (!fromChain?.chainType)
|
|
43
|
-
return false;
|
|
44
|
-
switch (fromChain.chainType) {
|
|
45
|
-
case ChainType.EVM:
|
|
46
|
-
return isEvmSignerReady;
|
|
47
|
-
case ChainType.COSMOS:
|
|
48
|
-
return isCosmosSignerReady;
|
|
49
|
-
case ChainType.BTC:
|
|
50
|
-
return isBitcoinSignerReady;
|
|
51
|
-
case ChainType.SOLANA:
|
|
52
|
-
return isSolanaSignerReady;
|
|
53
|
-
case ChainType.SUI:
|
|
54
|
-
return isSuiSignerReady;
|
|
55
|
-
}
|
|
56
|
-
}, [
|
|
57
|
-
fromChain?.chainType,
|
|
38
|
+
return {
|
|
58
39
|
isEvmSignerReady,
|
|
59
|
-
isCosmosSignerReady,
|
|
60
|
-
isBitcoinSignerReady,
|
|
61
40
|
isSolanaSignerReady,
|
|
62
|
-
isSuiSignerReady,
|
|
63
|
-
]);
|
|
64
|
-
return {
|
|
65
|
-
isSignerReady,
|
|
66
41
|
evmSigner,
|
|
67
42
|
cosmosSigner,
|
|
68
43
|
bitcoinSigner,
|
|
69
44
|
solanaSigner,
|
|
70
|
-
suiSigner,
|
|
71
45
|
};
|
|
72
46
|
};
|
|
73
47
|
//# sourceMappingURL=useSigner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSigner.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useSigner.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAEL,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,KAA2B,EAAE;IACpE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IACjE,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEpD,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAAC;IACrC,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC;IAE3C,MAAM,EAAE,2BAA2B,EAAE,GAAG,SAAS,EAAE,CAAC;IACpD,MAAM,qBAAqB,GAAG,SAAS,EAAE,SAAS;QAChD,CAAC,CAAC,2BAA2B,CAAC,SAAS,CAAC,SAAS,CAAC;QAClD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,aAAa,GAAiC,OAAO,CAAC,GAAG,EAAE;QAC/D,QAAQ,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO,IAAI,eAAe,EAAE,CAAC;aAC9B;YACD,KAAK,SAAS,CAAC,CAAC;gBACd,OAAO,IAAI,gBAAgB,EAAE,CAAC;aAC/B;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,OAAO,IAAI,cAAc,EAAE,CAAC;aAC7B;SACF;IACH,CAAC,EAAE,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,OAAO;QACL,gBAAgB;QAChB,mBAAmB;QACnB,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;KACb,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,59 +1,13 @@
|
|
|
1
1
|
import type { ChainData } from "@0xsquid/squid-types";
|
|
2
2
|
import { ChainType } from "@0xsquid/squid-types";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Wallet } from "../../core/types/wallet";
|
|
4
4
|
export declare const useWallet: () => {
|
|
5
|
-
wallets:
|
|
6
|
-
name: string;
|
|
7
|
-
connectorId: import("../../core/types/wallet").ConnectorID;
|
|
8
|
-
connectorName: string;
|
|
9
|
-
icon: string | undefined;
|
|
10
|
-
windowFlag: import("../../core/types/wallet").WindowWalletFlag;
|
|
11
|
-
canSwitchWallets?: boolean | undefined;
|
|
12
|
-
isMobile?: boolean | undefined;
|
|
13
|
-
isInstalled?: (() => boolean) | undefined;
|
|
14
|
-
skipInstallCheck?: boolean | undefined;
|
|
15
|
-
rdns?: string | undefined;
|
|
16
|
-
} & {
|
|
17
|
-
isMultiChain: true;
|
|
18
|
-
supportedNetworks: import("../../core/types/wallet").NetworkConfig[];
|
|
19
|
-
}) | ({
|
|
20
|
-
name: string;
|
|
21
|
-
connectorId: import("../../core/types/wallet").ConnectorID;
|
|
22
|
-
connectorName: string;
|
|
23
|
-
icon: string | undefined;
|
|
24
|
-
windowFlag: import("../../core/types/wallet").WindowWalletFlag;
|
|
25
|
-
canSwitchWallets?: boolean | undefined;
|
|
26
|
-
isMobile?: boolean | undefined;
|
|
27
|
-
isInstalled?: (() => boolean) | undefined;
|
|
28
|
-
skipInstallCheck?: boolean | undefined;
|
|
29
|
-
rdns?: string | undefined;
|
|
30
|
-
} & {
|
|
31
|
-
isMultiChain?: false | undefined;
|
|
32
|
-
type: ChainType;
|
|
33
|
-
}))[];
|
|
5
|
+
wallets: Wallet[];
|
|
34
6
|
connectedWallets: Wallet[];
|
|
35
|
-
connectedWalletsByChainType: {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}>;
|
|
40
|
-
cosmos: Partial<{
|
|
41
|
-
wallet: import("../../core/types/wallet").CosmosWallet;
|
|
42
|
-
address: string;
|
|
43
|
-
}>;
|
|
44
|
-
solana: Partial<{
|
|
45
|
-
wallet: import("../../core/types/wallet").SolanaWallet;
|
|
46
|
-
address: string;
|
|
47
|
-
}>;
|
|
48
|
-
bitcoin: Partial<{
|
|
49
|
-
wallet: import("../../core/types/wallet").BitcoinWallet;
|
|
50
|
-
address: string;
|
|
51
|
-
}>;
|
|
52
|
-
sui: Partial<{
|
|
53
|
-
wallet: import("../../core/types/wallet").SuiWallet;
|
|
54
|
-
address: string;
|
|
55
|
-
} & import("../../core/types/sui").SuiAccount>;
|
|
56
|
-
};
|
|
7
|
+
connectedWalletsByChainType: Record<ChainType, {
|
|
8
|
+
wallet: Wallet | undefined;
|
|
9
|
+
address: string | undefined;
|
|
10
|
+
}>;
|
|
57
11
|
connectedAddresses: Record<ChainType, string | undefined>;
|
|
58
12
|
connectingWalletState: import("../store/useWalletStore").ConnectingWalletState;
|
|
59
13
|
changeWallet: () => Promise<void>;
|
|
@@ -64,6 +18,6 @@ export declare const useWallet: () => {
|
|
|
64
18
|
selectedChainTypes?: ChainType[] | undefined;
|
|
65
19
|
}, unknown>;
|
|
66
20
|
isWalletConnected: (wallet: Wallet) => boolean;
|
|
67
|
-
|
|
21
|
+
isConnected: (chainType: ChainType) => boolean;
|
|
68
22
|
};
|
|
69
23
|
export declare const useEvmWalletListener: () => void;
|
|
@@ -4,7 +4,6 @@ import { useCallback, useEffect, useMemo } from "react";
|
|
|
4
4
|
import { useAccount, useConnect, useDisconnect, useWalletClient } from "wagmi";
|
|
5
5
|
import { useCosmosContext } from "../../core/providers/CosmosProvider";
|
|
6
6
|
import { useSolanaContext } from "../../core/providers/SolanaProvider";
|
|
7
|
-
import { useSuiContext } from "../../core/providers/SuiProvider";
|
|
8
7
|
import { connectWallet as connectWalletServiceMethod, findWalletByWagmiConnector, getWalletSupportedChainTypes, redirectToExtensionsStore, } from "../../services/internal/walletService";
|
|
9
8
|
import { useSquidChains } from "../chains/useSquidChains";
|
|
10
9
|
import { useConfigStore } from "../store/useSquidStore";
|
|
@@ -15,11 +14,10 @@ export const useWallet = () => {
|
|
|
15
14
|
const { wallets } = useWallets();
|
|
16
15
|
const { disconnectAsync: disconnectEvm } = useDisconnect();
|
|
17
16
|
const { connectCosmos, cosmosConnectedWallet } = useCosmosContext();
|
|
18
|
-
const { connectSolana } = useSolanaContext();
|
|
19
|
-
const { connectSui, disconnectSui } = useSuiContext();
|
|
20
17
|
const { connectAsync: connectEvmAsync } = useConnect();
|
|
21
18
|
const { findChain } = useSquidChains();
|
|
22
19
|
const { isGnosisConnected, gnosisAddress } = useGnosisContext();
|
|
20
|
+
const { connectSolana } = useSolanaContext();
|
|
23
21
|
const { connectedWalletsByChainType, connectingWalletState, setConnectedWallet, setConnectingWallet, disconnectWallet: storeDisconnectWallet, } = useWalletStore();
|
|
24
22
|
const walletConnectionRejected = (wallet) => {
|
|
25
23
|
setConnectingWallet({
|
|
@@ -46,13 +44,13 @@ export const useWallet = () => {
|
|
|
46
44
|
connectCosmos,
|
|
47
45
|
cosmosConnectedWallet,
|
|
48
46
|
connectSolana,
|
|
49
|
-
connectSui,
|
|
50
47
|
selectedChainTypes,
|
|
51
48
|
findChain,
|
|
52
49
|
});
|
|
53
50
|
if (result) {
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
// Set connected wallet for each chain type with its corresponding address
|
|
52
|
+
result.addresses.forEach(({ chainType, address }) => {
|
|
53
|
+
setConnectedWallet(result.wallet, address, chainType);
|
|
56
54
|
});
|
|
57
55
|
setConnectingWallet({
|
|
58
56
|
status: ConnectingWalletStatus.IDLE,
|
|
@@ -79,9 +77,6 @@ export const useWallet = () => {
|
|
|
79
77
|
case ChainType.SOLANA:
|
|
80
78
|
// Solana disconnect is handled by the wallet adapter events
|
|
81
79
|
break;
|
|
82
|
-
case ChainType.SUI:
|
|
83
|
-
disconnectSui();
|
|
84
|
-
break;
|
|
85
80
|
default:
|
|
86
81
|
// TODO: Implement disconnect for other chains
|
|
87
82
|
break;
|
|
@@ -138,15 +133,9 @@ export const useWallet = () => {
|
|
|
138
133
|
.map((c) => c.wallet)
|
|
139
134
|
.filter((w) => w !== null && w !== undefined);
|
|
140
135
|
}, [connectedWalletsByChainType]);
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
if (isGnosisConnected && chainType === ChainType.EVM) {
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
const connectedWallet = connectedWalletsByChainType[chainType];
|
|
148
|
-
return !!connectedWallet?.wallet && !!connectedWallet?.address;
|
|
149
|
-
}, [connectedWalletsByChainType, isGnosisConnected]);
|
|
136
|
+
const isConnected = useCallback((chainType) => {
|
|
137
|
+
return !!connectedAddresses[chainType];
|
|
138
|
+
}, [connectedAddresses]);
|
|
150
139
|
return {
|
|
151
140
|
wallets,
|
|
152
141
|
connectedWallets,
|
|
@@ -157,7 +146,7 @@ export const useWallet = () => {
|
|
|
157
146
|
disconnectWallet,
|
|
158
147
|
connectWallet: connectWalletMutation.mutateAsync,
|
|
159
148
|
isWalletConnected,
|
|
160
|
-
|
|
149
|
+
isConnected,
|
|
161
150
|
};
|
|
162
151
|
};
|
|
163
152
|
export const useEvmWalletListener = () => {
|
|
@@ -174,17 +163,14 @@ export const useEvmWalletListener = () => {
|
|
|
174
163
|
address &&
|
|
175
164
|
connector &&
|
|
176
165
|
!isConnecting &&
|
|
177
|
-
!evmConnectedWallet
|
|
166
|
+
!evmConnectedWallet.wallet &&
|
|
178
167
|
!isDisconnected) {
|
|
179
168
|
const wallet = findWalletByWagmiConnector(wallets, connector);
|
|
180
169
|
// TODO: implement evm listener for multichain wallets
|
|
181
170
|
if (!wallet || wallet.isMultiChain)
|
|
182
171
|
return;
|
|
183
172
|
if (wallet.type === ChainType.EVM) {
|
|
184
|
-
setConnectedWallet(ChainType.EVM
|
|
185
|
-
wallet: wallet,
|
|
186
|
-
address,
|
|
187
|
-
});
|
|
173
|
+
setConnectedWallet(wallet, address, ChainType.EVM);
|
|
188
174
|
}
|
|
189
175
|
}
|
|
190
176
|
else if (isDisconnected && evmConnectedWallet.wallet) {
|
|
@@ -194,7 +180,7 @@ export const useEvmWalletListener = () => {
|
|
|
194
180
|
address,
|
|
195
181
|
connector,
|
|
196
182
|
disconnectWallet,
|
|
197
|
-
evmConnectedWallet
|
|
183
|
+
evmConnectedWallet.wallet,
|
|
198
184
|
isConnected,
|
|
199
185
|
isConnecting,
|
|
200
186
|
isDisconnected,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,3 @@
|
|
|
1
1
|
export declare const useWallets: () => {
|
|
2
|
-
wallets: (
|
|
3
|
-
name: string;
|
|
4
|
-
connectorId: import("../..").ConnectorID;
|
|
5
|
-
connectorName: string;
|
|
6
|
-
icon: string | undefined;
|
|
7
|
-
windowFlag: import("../../core/types/wallet").WindowWalletFlag;
|
|
8
|
-
canSwitchWallets?: boolean | undefined;
|
|
9
|
-
isMobile?: boolean | undefined;
|
|
10
|
-
isInstalled?: (() => boolean) | undefined;
|
|
11
|
-
skipInstallCheck?: boolean | undefined;
|
|
12
|
-
rdns?: string | undefined;
|
|
13
|
-
} & {
|
|
14
|
-
isMultiChain: true;
|
|
15
|
-
supportedNetworks: import("../..").NetworkConfig[];
|
|
16
|
-
}) | ({
|
|
17
|
-
name: string;
|
|
18
|
-
connectorId: import("../..").ConnectorID;
|
|
19
|
-
connectorName: string;
|
|
20
|
-
icon: string | undefined;
|
|
21
|
-
windowFlag: import("../../core/types/wallet").WindowWalletFlag;
|
|
22
|
-
canSwitchWallets?: boolean | undefined;
|
|
23
|
-
isMobile?: boolean | undefined;
|
|
24
|
-
isInstalled?: (() => boolean) | undefined;
|
|
25
|
-
skipInstallCheck?: boolean | undefined;
|
|
26
|
-
rdns?: string | undefined;
|
|
27
|
-
} & {
|
|
28
|
-
isMultiChain?: false | undefined;
|
|
29
|
-
type: import("@0xsquid/squid-types").ChainType;
|
|
30
|
-
}))[];
|
|
2
|
+
wallets: import("../..").Wallet[];
|
|
31
3
|
};
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
|
-
import { useSuiContext } from "../../core/providers/SuiProvider";
|
|
3
2
|
import { getWallets } from "../../services/internal/walletService";
|
|
4
3
|
import { useClient } from "../client/useClient";
|
|
5
4
|
export const useWallets = () => {
|
|
6
5
|
const { clientWindow } = useClient();
|
|
7
|
-
const
|
|
8
|
-
const wallets = useMemo(() => {
|
|
9
|
-
return [...getWallets(clientWindow), ...suiWallets];
|
|
10
|
-
}, [clientWindow, suiWallets]);
|
|
6
|
+
const wallets = useMemo(() => getWallets(clientWindow), [clientWindow]);
|
|
11
7
|
return {
|
|
12
8
|
wallets,
|
|
13
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useWallets.js","sourceRoot":"","sources":["../../../src/hooks/wallet/useWallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAExE,OAAO;QACL,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/provider/index.d.ts
CHANGED
package/dist/provider/index.js
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import { Squid } from "@0xsquid/sdk";
|
|
2
2
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
3
|
+
import { squidApiBaseUrl } from "../core/externalLinks";
|
|
4
|
+
import { CosmosProvider } from "../core/providers/CosmosProvider";
|
|
5
|
+
import { defaultOptions } from "../core/queries/react-query-config";
|
|
6
|
+
import { createWagmiConfig } from "../core/wagmiConfig";
|
|
7
|
+
import { useConfigStore, useSquidStore, useSwapRoutePersistStore, } from "../hooks/store/useSquidStore";
|
|
8
|
+
import { getConfigWithDefaults } from "../services/internal/configService";
|
|
3
9
|
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
4
10
|
import { mainnet } from "viem/chains";
|
|
5
11
|
import { createConfig, http, WagmiProvider } from "wagmi";
|
|
6
12
|
import { injected } from "wagmi/connectors";
|
|
7
|
-
import { squidApiBaseUrl } from "../core/externalLinks";
|
|
8
|
-
import { CosmosProvider } from "../core/providers/CosmosProvider";
|
|
9
13
|
import { SolanaProvider } from "../core/providers/SolanaProvider";
|
|
10
|
-
import { SuiProvider } from "../core/providers/SuiProvider";
|
|
11
|
-
import { defaultOptions } from "../core/queries/react-query-config";
|
|
12
|
-
import { createWagmiConfig } from "../core/wagmiConfig";
|
|
13
14
|
import { useAssetsColorsStore } from "../hooks/store/useAssetsColorsStore";
|
|
14
|
-
import { useConfigStore, useSquidStore, useSwapRoutePersistStore, } from "../hooks/store/useSquidStore";
|
|
15
15
|
import { fetchAssetsColors, initializeSquidWithAssetsColors, isEmptyObject, } from "../services";
|
|
16
|
-
import { getConfigWithDefaults } from "../services/internal/configService";
|
|
17
16
|
const queryClient = new QueryClient({ defaultOptions });
|
|
18
17
|
const verifyIntegratorIdValidity = (integratorId) => {
|
|
19
18
|
if (!integratorId) {
|
|
@@ -106,8 +105,7 @@ export const SquidProvider = ({ children, config, placeholder, }) => {
|
|
|
106
105
|
}, [initializeSdk]);
|
|
107
106
|
return wagmiConfig ? (React.createElement(WagmiProvider, { config: wagmiConfig },
|
|
108
107
|
React.createElement(QueryClientProvider, { client: queryClient },
|
|
109
|
-
React.createElement(
|
|
110
|
-
React.createElement(
|
|
111
|
-
React.createElement(CosmosProvider, null, children)))))) : (placeholder);
|
|
108
|
+
React.createElement(SolanaProvider, null,
|
|
109
|
+
React.createElement(CosmosProvider, null, children))))) : (placeholder);
|
|
112
110
|
};
|
|
113
111
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ChainData, type CosmosChain, type Token } from "@0xsquid/squid-types";
|
|
2
2
|
import type { TokenWithBalance } from "../../core/types/tokens";
|
|
3
|
-
|
|
3
|
+
declare const getTokensSupportingMultiCall: (tokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
|
|
4
|
+
export { getTokensSupportingMultiCall };
|
|
4
5
|
export declare const getAllEvmTokensBalance: (evmTokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
|
|
5
6
|
export declare const getWorkingCosmosRpcUrl: (chainData: ChainData) => Promise<string>;
|
|
6
7
|
/**
|
|
@@ -32,7 +33,7 @@ export declare const getAllCosmosBalancesForChain: ({ rpc, address, tokens, }: {
|
|
|
32
33
|
* @param {CosmosChain[]} params.cosmosChains
|
|
33
34
|
* @returns {Promise<TokenWithBalance[]>} All tokens with their balances.
|
|
34
35
|
*/
|
|
35
|
-
export declare const
|
|
36
|
+
export declare const getAllCosmosBalancesForAddress: ({ addresses, cosmosTokens, cosmosChains, }: {
|
|
36
37
|
addresses: {
|
|
37
38
|
chainId: string;
|
|
38
39
|
address: string;
|
|
@@ -45,14 +46,9 @@ export declare const getSolanaTokenBalance: (userAddress: string, tokenAddress:
|
|
|
45
46
|
export declare const getSolanaTokensBalance: (userAddress: string, tokenAddresses: string[]) => Promise<{
|
|
46
47
|
[address: string]: bigint;
|
|
47
48
|
}>;
|
|
48
|
-
export declare const getAllSolanaTokensBalance: (solanaTokens: Token[], userAddress: string) => Promise<TokenWithBalance[]>;
|
|
49
|
+
export declare const getAllSolanaTokensBalance: (solanaTokens: Token[], userAddress: string, chains: ChainData[]) => Promise<TokenWithBalance[]>;
|
|
49
50
|
export declare function getBitcoinNativeBalance(address: string): Promise<string>;
|
|
50
51
|
export declare const getAllBitcoinTokensBalance: (userAddress: string, bitcoinTokens: Token[]) => Promise<TokenWithBalance[]>;
|
|
51
|
-
/**
|
|
52
|
-
* Returns the balance of a single Sui coin for a given address
|
|
53
|
-
*/
|
|
54
|
-
export declare const getSuiTokenBalance: (userAddress: string, tokenAddress: string, rpcUrl: string) => Promise<bigint>;
|
|
55
|
-
export declare const getAllSuiTokensBalance: (userAddress: string, suiTokens: Token[], suiChains: ChainData[]) => Promise<TokenWithBalance[]>;
|
|
56
52
|
/**
|
|
57
53
|
* Returns a promise that resolves when the given promise resolves or after the given timeout
|
|
58
54
|
* @param ms - timeout in milliseconds
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { ChainType, } from "@0xsquid/squid-types";
|
|
2
2
|
import { StargateClient } from "@cosmjs/stargate";
|
|
3
|
-
import { CHAIN_IDS, nativeEvmTokenAddress,
|
|
3
|
+
import { CHAIN_IDS, nativeEvmTokenAddress, SOLANA_RPC_URL, } from "../../core/constants";
|
|
4
4
|
import { multicallAbi, multicallAddress } from "../../core/multicall3";
|
|
5
5
|
import { ethers, Interface, JsonRpcProvider } from "ethers";
|
|
6
6
|
import { erc20Abi } from "viem";
|
|
7
7
|
import { normalizeIbcAddress } from "../internal/assetsService";
|
|
8
8
|
import { isBitcoinAddressValid } from "../internal/bitcoinService";
|
|
9
9
|
import { formatBNToReadable } from "../internal/numberService";
|
|
10
|
-
import { SuiRpcClient } from "./suiRpcClient";
|
|
11
10
|
const isTokenNative = (token) => token.address.toLowerCase() === nativeEvmTokenAddress.toLowerCase();
|
|
12
11
|
const getTokenAddressForMultiCall = (t) => {
|
|
13
12
|
return isTokenNative(t)
|
|
@@ -64,7 +63,7 @@ const formatBalanceForTokens = (results) => {
|
|
|
64
63
|
balance: formatBNToReadable(BigInt(result.returnData), token.decimals),
|
|
65
64
|
};
|
|
66
65
|
}
|
|
67
|
-
catch {
|
|
66
|
+
catch (error) {
|
|
68
67
|
return {
|
|
69
68
|
...token,
|
|
70
69
|
balance: "0",
|
|
@@ -72,7 +71,7 @@ const formatBalanceForTokens = (results) => {
|
|
|
72
71
|
}
|
|
73
72
|
});
|
|
74
73
|
};
|
|
75
|
-
|
|
74
|
+
const getTokensSupportingMultiCall = async (tokens, userAddress, chains) => {
|
|
76
75
|
// Create providers for each chain
|
|
77
76
|
const providers = {};
|
|
78
77
|
chains.forEach((chain) => {
|
|
@@ -99,6 +98,7 @@ export const getTokensSupportingMultiCall = async (tokens, userAddress, chains)
|
|
|
99
98
|
const allResults = await Promise.all(chains.map((chain) => fetchBalancesForChain(chain)));
|
|
100
99
|
return allResults.flat();
|
|
101
100
|
};
|
|
101
|
+
export { getTokensSupportingMultiCall };
|
|
102
102
|
export const getAllEvmTokensBalance = async (evmTokens, userAddress, chains) => {
|
|
103
103
|
const tokensMulticall = await getTokensSupportingMultiCall(evmTokens, userAddress, chains);
|
|
104
104
|
return tokensMulticall;
|
|
@@ -142,7 +142,7 @@ export const getWorkingCosmosRpcUrl = async (chainData) => {
|
|
|
142
142
|
for (const rpc of rpcList) {
|
|
143
143
|
try {
|
|
144
144
|
// eslint-disable-next-line no-await-in-loop
|
|
145
|
-
const isValid = await
|
|
145
|
+
const isValid = await testCosmosRpc(rpc);
|
|
146
146
|
if (isValid) {
|
|
147
147
|
return rpc;
|
|
148
148
|
}
|
|
@@ -162,7 +162,7 @@ export const getWorkingCosmosRpcUrl = async (chainData) => {
|
|
|
162
162
|
* @returns balance as formatted string
|
|
163
163
|
*/
|
|
164
164
|
export const getCosmosTokenBalance = async (chain, address, tokenAddress) => {
|
|
165
|
-
const validRpc = await getWorkingCosmosRpcUrl(chain);
|
|
165
|
+
const validRpc = await timeout(4_000, getWorkingCosmosRpcUrl(chain));
|
|
166
166
|
if (!validRpc)
|
|
167
167
|
return "0";
|
|
168
168
|
const client = await StargateClient.connect(validRpc);
|
|
@@ -200,7 +200,7 @@ export const getAllCosmosBalancesForChain = async ({ rpc, address, tokens, }) =>
|
|
|
200
200
|
* @param {CosmosChain[]} params.cosmosChains
|
|
201
201
|
* @returns {Promise<TokenWithBalance[]>} All tokens with their balances.
|
|
202
202
|
*/
|
|
203
|
-
export const
|
|
203
|
+
export const getAllCosmosBalancesForAddress = async ({ addresses, cosmosTokens, cosmosChains, }) => {
|
|
204
204
|
const tokensWithBalance = [];
|
|
205
205
|
await Promise.all(cosmosChains.map(async (cosmosChain) => {
|
|
206
206
|
const userAddress = addresses.find((a) => a.chainId === cosmosChain.chainId)?.address;
|
|
@@ -279,7 +279,7 @@ export const getSolanaNativeBalance = async (userAddress) => {
|
|
|
279
279
|
return BigInt(data.result?.value || 0);
|
|
280
280
|
};
|
|
281
281
|
export const getSolanaTokenBalance = async (userAddress, tokenAddress) => {
|
|
282
|
-
if (tokenAddress.toLowerCase() ===
|
|
282
|
+
if (tokenAddress.toLowerCase() === nativeEvmTokenAddress.toLowerCase()) {
|
|
283
283
|
return getSolanaNativeBalance(userAddress);
|
|
284
284
|
}
|
|
285
285
|
const response = await fetch(SOLANA_RPC_URL, {
|
|
@@ -318,13 +318,17 @@ export const getSolanaTokensBalance = async (userAddress, tokenAddresses) => {
|
|
|
318
318
|
});
|
|
319
319
|
const data = await response.json();
|
|
320
320
|
return tokenAddresses.reduce((acc, address) => {
|
|
321
|
-
const tokenAccount = data.result?.value?.find((
|
|
321
|
+
const tokenAccount = data.result?.value?.find((acc) => acc.account.data.parsed.info.mint.toLowerCase() ===
|
|
322
322
|
address.toLowerCase());
|
|
323
323
|
acc[address] = BigInt(tokenAccount?.account.data.parsed.info.tokenAmount.amount || 0);
|
|
324
324
|
return acc;
|
|
325
325
|
}, {});
|
|
326
326
|
};
|
|
327
|
-
export const getAllSolanaTokensBalance = async (solanaTokens, userAddress) => {
|
|
327
|
+
export const getAllSolanaTokensBalance = async (solanaTokens, userAddress, chains) => {
|
|
328
|
+
const solanaChain = chains.find((c) => c.chainId === "solana-mainnet-beta");
|
|
329
|
+
if (!solanaChain || !solanaTokens.length) {
|
|
330
|
+
return solanaTokens.map((t) => ({ ...t, balance: "0" }));
|
|
331
|
+
}
|
|
328
332
|
try {
|
|
329
333
|
const nativeToken = solanaTokens.find((t) => t.address === nativeEvmTokenAddress);
|
|
330
334
|
const otherTokens = solanaTokens.filter((t) => t.address !== nativeEvmTokenAddress);
|
|
@@ -377,34 +381,6 @@ export const getAllBitcoinTokensBalance = async (userAddress, bitcoinTokens) =>
|
|
|
377
381
|
};
|
|
378
382
|
}));
|
|
379
383
|
};
|
|
380
|
-
/**
|
|
381
|
-
* Returns the balance of a single Sui coin for a given address
|
|
382
|
-
*/
|
|
383
|
-
export const getSuiTokenBalance = async (userAddress, tokenAddress, rpcUrl) => {
|
|
384
|
-
const suiClient = new SuiRpcClient(rpcUrl);
|
|
385
|
-
const { totalBalance } = await suiClient.getBalance(userAddress, tokenAddress);
|
|
386
|
-
return BigInt(totalBalance || 0);
|
|
387
|
-
};
|
|
388
|
-
export const getAllSuiTokensBalance = async (userAddress, suiTokens, suiChains) => {
|
|
389
|
-
const getBalancesForChain = async (chain) => {
|
|
390
|
-
const tokensForChain = suiTokens.filter((t) => t.chainId === chain.chainId);
|
|
391
|
-
const suiClient = new SuiRpcClient(chain.rpc);
|
|
392
|
-
const foundBalances = await suiClient.getAllBalances(userAddress);
|
|
393
|
-
const balanceMap = foundBalances.reduce((acc, balance) => {
|
|
394
|
-
acc[balance.coinType] = balance.totalBalance;
|
|
395
|
-
return acc;
|
|
396
|
-
}, {});
|
|
397
|
-
return tokensForChain.map((token) => {
|
|
398
|
-
const balanceBn = BigInt(balanceMap[token.address] || 0);
|
|
399
|
-
return {
|
|
400
|
-
...token,
|
|
401
|
-
balance: formatBNToReadable(balanceBn, token.decimals),
|
|
402
|
-
};
|
|
403
|
-
});
|
|
404
|
-
};
|
|
405
|
-
const allResults = await Promise.all(suiChains.map(getBalancesForChain));
|
|
406
|
-
return allResults.flat();
|
|
407
|
-
};
|
|
408
384
|
/**
|
|
409
385
|
* Returns a promise that resolves when the given promise resolves or after the given timeout
|
|
410
386
|
* @param ms - timeout in milliseconds
|