UNPKG

@swapper-finance/sdk

Version:
50 lines (41 loc) 1.15 kB
import { JsonRpcProvider, JsonRpcSigner } from "@ethersproject/providers"; import { useEffect, useMemo, useState } from "react"; import { useAccount } from "wagmi"; import { useEthersSigner } from "./clientToSigner"; import { DEFAULT_SOURCE_CHAIN_ID } from "@src/constants"; export interface Network { networkName: string; chainId: string; address?: string; } export interface EvmNetwork extends Network { provider?: JsonRpcProvider; signer?: JsonRpcSigner; } export const useNetworks = (): { networks: { evm: EvmNetwork; }; } => { const [signer, setSigner] = useState<JsonRpcSigner>(); const ethersSigner = useEthersSigner(); useEffect(() => { ethersSigner.then((signer) => setSigner(signer)); }, [ethersSigner]); // Evm const account = useAccount(); const evm = useMemo( () => ({ networkName: "EVM", chainId: account.chainId?.toString() || DEFAULT_SOURCE_CHAIN_ID, address: account.address, signer: signer, provider: signer?.provider, }), [account.address, account.chainId, signer], ); return { networks: { evm }, }; }; export default useNetworks;