@hyperlane-xyz/widgets
Version:
Common react components for Hyperlane projects
58 lines • 1.99 kB
JavaScript
import { useMemo } from 'react';
import { ProtocolType } from '@hyperlane-xyz/utils';
import { useAleoActiveChain } from './aleoWallet.js';
import { useCosmosActiveChain } from './cosmosWallet.js';
import { useEthereumActiveChain } from './ethereumWallet.js';
import { useRadixActiveChain } from './radixWallet.js';
import { useSolanaActiveChain } from './solanaWallet.js';
import { useStarknetActiveChain } from './starknetWallet.js';
import { useTronActiveChain } from './tronWallet.js';
export function useActiveChains(multiProvider) {
const evmChain = useEthereumActiveChain(multiProvider);
const solChain = useSolanaActiveChain(multiProvider);
const cosmChain = useCosmosActiveChain(multiProvider);
const starknetChain = useStarknetActiveChain(multiProvider);
const radixChain = useRadixActiveChain(multiProvider);
const aleoChain = useAleoActiveChain(multiProvider);
const tronChain = useTronActiveChain(multiProvider);
const readyChains = useMemo(() => [
evmChain,
solChain,
cosmChain,
starknetChain,
radixChain,
aleoChain,
tronChain,
].filter((c) => !!c.chainDisplayName), [
evmChain,
solChain,
cosmChain,
starknetChain,
radixChain,
aleoChain,
tronChain,
]);
return useMemo(() => ({
chains: {
[ProtocolType.Ethereum]: evmChain,
[ProtocolType.Sealevel]: solChain,
[ProtocolType.Cosmos]: cosmChain,
[ProtocolType.CosmosNative]: cosmChain,
[ProtocolType.Starknet]: starknetChain,
[ProtocolType.Radix]: radixChain,
[ProtocolType.Aleo]: aleoChain,
[ProtocolType.Tron]: tronChain,
},
readyChains,
}), [
evmChain,
solChain,
cosmChain,
readyChains,
starknetChain,
radixChain,
aleoChain,
tronChain,
]);
}
//# sourceMappingURL=activeChains.js.map