UNPKG

@hyperlane-xyz/widgets

Version:

Common react components for Hyperlane projects

40 lines 1.45 kB
import { useConnectModal } from '@rainbow-me/rainbowkit'; import { useCallback, useMemo } from 'react'; import { useAccount, useDisconnect } from 'wagmi'; import { ProtocolType } from '@hyperlane-xyz/utils'; export function useEthereumAccount(_multiProvider) { const { address, isConnected, connector } = useAccount(); const isReady = !!(address && isConnected && connector); return useMemo(() => ({ protocol: ProtocolType.Ethereum, addresses: address ? [{ address: `${address}` }] : [], isReady, }), [address, isReady]); } export function useEthereumWalletDetails() { const { connector } = useAccount(); const name = connector?.name; const logoUrl = connector?.icon; return useMemo(() => ({ name, logoUrl, }), [name, logoUrl]); } export function useEthereumConnectFn() { const { openConnectModal } = useConnectModal(); return useCallback(() => openConnectModal?.(), [openConnectModal]); } export function useEthereumDisconnectFn() { const { disconnectAsync } = useDisconnect(); return disconnectAsync; } export function useEthereumActiveChain(multiProvider) { const { chain } = useAccount(); return useMemo(() => ({ chainDisplayName: chain?.name, chainName: chain ? multiProvider.tryGetChainMetadata(chain.id)?.name : undefined, }), [chain, multiProvider]); } //# sourceMappingURL=ethereumWallet.js.map