• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ExWeb3 / elixir_ethers / f2e8d0295c2ba2c6a656a9eee1b989f37c272826
90%

Build:
DEFAULT BRANCH: main
Ran 30 Jul 2026 03:21AM UTC
Jobs 1
Files 41
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Jul 2026 03:19AM UTC coverage: 90.174% (+0.1%) from 90.074%
f2e8d0295c2ba2c6a656a9eee1b989f37c272826

push

github

web-flow
Add `eth_feeHistory` based fee estimation (#270)

* Add eth_feeHistory based fee estimation

- New Ethers.fee_history/4 (+ bang variant) wrapping eth_feeHistory with all
  quantities decoded to integers; also usable in Ethers.batch/2 via
  {:fee_history, [block_count, newest_block, reward_percentiles]}
- New Ethers.estimate_fees/1 (+ bang variant): estimates EIP-1559 fees from the
  median of recent blocks' priority fees sampled at a percentile selected by
  :speed (:slow/:standard/:fast or a raw percentile), with
  max_fee_per_gas = 2 * next_base_fee + max_priority_fee_per_gas
- Transaction auto-fill now prices missing max_fee_per_gas /
  max_priority_fee_per_gas through estimate_fees instead of a margin over
  eth_gasPrice, falling back to the legacy estimation on RPC clients without
  eth_feeHistory support (the new adapter callback is optional)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012pKYp3j1ew76CY7HA2nBTF

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Accept exactly one representation per fee_history input

Quantities must be integers - hex encoded strings are rejected instead of
being passed through, in line with the library convention of a single
accepted representation per input:

- block_count: positive integer only
- newest_block: non-negative integer or one of the named block tags
  (latest/earliest/pending/safe/finalized)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012pKYp3j1ew76CY7HA2nBTF

* Return {:error, :not_supported} when eth_feeHistory is unavailable

Ethers.fee_history/4 called the optional eth_fee_history/4 adapter callback
directly, raising UndefinedFunctionError on RPC client adapters that do not
implement it. Guard with function_exported?/3 and return an error tuple
instead, keeping the {:ok, _} | {:error, _} contract.

... (continued)

49 of 52 new or added lines in 2 files covered. (94.23%)

1762 of 1954 relevant lines covered (90.17%)

50.14 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
92.28
0.14% lib/ethers.ex
Jobs
ID Job ID Ran Files Coverage
1 f2e8d0295c2ba2c6a656a9eee1b989f37c272826.1 30 Jul 2026 03:21AM UTC 41
90.17
GitHub Action Run
Source Files on build f2e8d0295c2ba2c6a656a9eee1b989f37c272826
  • Tree
  • List 41
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • f2e8d029 on github
  • Prev Build on main (#F0D7A96D...)
  • Next Build on main (#2E01BB08...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc