import { getGasTracker } from "@ledgerhq/coin-evm/network/gasTracker/index";
import { useEffect, useMemo, useState } from "react";
/**
 * React hook to get gas options for a given currency
 * Used in the send flow to get the gas options for the currency,
 * for example in SelectFeeStrategy.tsx file in the renderer/families/{currency} folder in LLD
 */
export const useGasOptions = ({ currency, transaction, 
// interval is the time in milliseconds between each call to the gas tracker
interval = 60 * 1000, }) => {
    const shouldUseEip1559 = transaction.type === 2;
    const gasTracker = useMemo(() => getGasTracker(currency), [currency]);
    const [error, setError] = useState(null);
    const [gasOptions, setGasOptions] = useState(undefined);
    const [loading, setLoading] = useState(true);
    useEffect(() => {
        if (!gasTracker) {
            setLoading(false);
            return;
        }
        const getGasOptionsCallback = async () => gasTracker
            .getGasOptions({ currency, options: { useEIP1559: shouldUseEip1559 } })
            .then(setGasOptions)
            .catch(setError)
            .finally(() => setLoading(false));
        getGasOptionsCallback();
        if (interval > 0) {
            const intervalId = setInterval(() => getGasOptionsCallback(), interval);
            return () => {
                clearInterval(intervalId);
            };
        }
    }, [gasTracker, interval, currency, shouldUseEip1559]);
    return [gasOptions, error, loading];
};
//# sourceMappingURL=react.js.map