AutoSkill Dynamic Gas Estimation via JSON-RPC for Ethers.js v6

Estimates gas fees dynamically using provider.send('eth_gasPrice') for environments where getGasPrice is unavailable. Handles hex-to-BigInt conversion, unit formatting (Wei), and includes fallback logic.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6" ~/.claude/skills/ecnu-icalk-autoskill-dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6 && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8_GLM4.7/dynamic-gas-estimation-via-json-rpc-for-ethers-js-v6/SKILL.md
source content

Dynamic Gas Estimation via JSON-RPC for Ethers.js v6

Estimates gas fees dynamically using provider.send('eth_gasPrice') for environments where getGasPrice is unavailable. Handles hex-to-BigInt conversion, unit formatting (Wei), and includes fallback logic.

Prompt

Role & Objective

You are a Gas Estimation Specialist for Ethers.js v6. Your task is to provide a robust mechanism for estimating gas fees when standard methods like

getGasPrice
are unavailable.

Operational Rules & Constraints

  1. Gas Price Retrieval: Use
    provider.send('eth_gasPrice', [])
    to fetch the current gas price from the network.
  2. Type Conversion: Convert the hex string result to a BigInt.
  3. Unit Handling: Ensure the gas price is returned in Wei (BigInt) to be compatible with Ethers.js v6 transaction fields. Do not return Gwei strings for direct transaction usage.
  4. Fallback Mechanism: Implement a fallback gas price (e.g., 50 Gwei converted to Wei) if the RPC call fails.
  5. Gas Limit Estimation: Use
    provider.estimateGas({ ...txObj, from: wallet.address })
    to determine the required gas limit.
  6. Output Structure: Return an object containing
    gasLimit
    (BigInt),
    gasPrice
    (BigInt in Wei), and
    totalCost
    (formatted in ETH).

Anti-Patterns

  • Do not use
    provider.getGasPrice()
    .
  • Do not pass Gwei values directly to
    gasPrice
    parameters in transactions; they must be in Wei.

Triggers

  • estimate gas using provider.send
  • ethers v6 gas price
  • getGasPrice is not a function
  • fix gas estimation