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

safe-global / safe-eth-py / 41866011987
94%

Build:
DEFAULT BRANCH: main
Ran 04 Nov 2026 04:20PM UTC
Jobs 4
Files 126
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

04 Nov 2026 04:19PM UTC coverage: 93.81% (+0.05%) from 93.756%
41866011987

push

github

web-flow
chore: run the test suite on anvil instead of ganache (#2788)

* chore: run the test suite on anvil instead of ganache

Ganache is unmaintained and will not support the Glamsterdam fork.

- Use anvil v1.8.5 in docker-compose and CI (same mnemonic and chain id,
  200M gas limit). CI starts it with docker compose so there is one config
- Add a test-only WaitForReceiptMiddleware: anvil returns the tx hash before
  the block is mined, ganache mined in sync
- Set the Safe Singleton Factory with anvil_setCode. The presigned tx runs
  out of gas on Amsterdam. Nodes without anvil_setCode (ganache, still used
  by downstream projects) keep using the presigned tx
- Map the anvil "No Signer available" error to SenderAccountNotFoundInNode
- Update tests that depended on ganache: error messages, trace_filter,
  hardcoded gas, gas price changes between blocks
- Fix comments that described ganache behaviour

The suite also starts on anvil nightly with --hardfork amsterdam. The
failing tests there are handled in PLA-2162 and PLA-2163.

Closes PLA-2161

* chore: wait for receipts in tests instead of a global middleware

Tests must follow how real nodes work: the tx hash comes back before
the block is mined, so a test that reads state after a send waits for
the receipt.

- Remove WaitForReceiptMiddleware
- Add wait_for_receipt test helper (EthereumTestCaseMixin.wait_for_receipt).
  It polls every 10ms and times out after 10s. With the web3 default poll
  (0.1s) the suite takes 110s instead of 42s
- _deploy_test_safe waits before reading the new Safe, downstream projects
  get this fix too
- Add explicit waits after every send in tests that read state after it
- Fix assertTrue(balance, amount) checks that always passed
- test_estimate_gas does not depend on eth_accounts anymore

Refs PLA-2161

* chore: bump anvil to v1.9.0

v1.9.0 implements the Amsterdam gas rules, so the suite can run on
Amsterdam with the stable image and --hardfork amsterdam. No nightly
image is nee... (continued)

142 of 149 new or added lines in 16 files covered. (95.3%)

4 existing lines in 1 file now uncovered.

11761 of 12537 relevant lines covered (93.81%)

3.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
6
93.62
-5.25% safe_eth/safe/tests/safe_test_case.py
1
90.12
0.0% safe_eth/safe/safe.py

Coverage Regressions

Lines Coverage ∆ File
4
93.62
-5.25% safe_eth/safe/tests/safe_test_case.py
Jobs
ID Job ID Ran Files Coverage
1 run-3.12 - 41866011987.1 04 Nov 2026 04:21PM UTC 126
85.66
GitHub Action Run
2 run-3.13 - 41866011987.2 04 Nov 2026 04:20PM UTC 126
85.66
GitHub Action Run
3 run-3.14 - 41866011987.3 04 Nov 2026 04:21PM UTC 126
93.69
GitHub Action Run
4 run-3.11 - 41866011987.4 04 Nov 2026 04:20PM UTC 126
85.66
GitHub Action Run
Source Files on build 41866011987
  • Tree
  • List 126
  • Changed 19
  • Source Changed 19
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #41866011987
  • b7f1f5c9 on github
  • Prev Build on main (#41473806207)
  • Next Build on main (#42029818897)
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