const gasLimit = await provider.estimateGas(tx); // transaction
const gasLimit = await instance_contract.estimateGas.method(message); //contract
const calculateArbitrumGas = async (provider, gasLimit) => {
    const feeData = await provider.getFeeData();
    
    // ArbGasInfo.getMinimumGasPrice
    // (currently 0.1 gwei on Arbitrum One and 0.01 gwei on Nova).
    // ethers.utils.parseUnits("0.1", "gwei");

    const lastBaseFeePerGas = feeData.lastBaseFeePerGas;
    const gasFee = lastBaseFeePerGas.mul(gasLimit);

    console.log("lastBaseFeePerGas: ", ethers.utils.formatUnits(feeData.lastBaseFeePerGas, "gwei"), "Gwei");
    console.log("gasLimit: ", gasLimit.toString());
    console.log("Arbitrum max gas cost:", ethers.utils.formatUnits(gasFee, "ether"), "Ether");
}

const calculateEthereumGas = async (provider, gasLimit) => {
    const feeData = await provider.getFeeData();

    console.log("lastBaseFeePerGas: ", ethers.utils.formatUnits(feeData.lastBaseFeePerGas, "gwei"), "Gwei");
    console.log("maxFeePerGas: ", ethers.utils.formatUnits(feeData.maxFeePerGas, "gwei"), "Gwei");
    console.log("maxPriorityFeePerGas: ", ethers.utils.formatUnits(feeData.maxPriorityFeePerGas, "gwei"), "Gwei");
    console.log("gasPrice: ", ethers.utils.formatUnits(feeData.gasPrice, "gwei"), "Gwei");
    console.log("gasLimit: ", gasLimit.toString());

    const lastBaseFeePerGas = feeData.lastBaseFeePerGas;
    const maxFeePerGas = feeData.maxFeePerGas;
    console.log("Estimated gas cost: ", ethers.utils.formatUnits(lastBaseFeePerGas.add(feeData.maxPriorityFeePerGas).mul(gasLimit), "ether"));
    console.log("Max gas cost: ", ethers.utils.formatUnits(maxFeePerGas.mul(gasLimit), "ether"), "Ether");
    
    return {
        maxFeePerGas: ethers.utils.formatUnits(feeData.maxFeePerGas, "wei"),
        maxPriorityFeePerGas: ethers.utils.formatUnits(feeData.maxPriorityFeePerGas, "wei"),
        gasLimit: gasLimit
    };
}

https://www.120btc.com/zixun/qukuai/17638.html
https://metamask.zendesk.com/hc/en-us/articles/4404600179227-User-Guide-Gas
https://metamask.zendesk.com/hc/en-us/articles/360022895972