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

safe-global / safe-client-gateway / 18557055253
89%

Build:
DEFAULT BRANCH: main
Ran 16 Oct 2025 09:42AM UTC
Jobs 2
Files 954
Run time 3min
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

16 Oct 2025 09:40AM UTC coverage: 89.942% (-0.1%) from 90.062%
18557055253

push

github

web-flow
fix: add SafeMigration contract support for version detection (#2746)

* fix: add SafeMigration contract support for version detection

Extends the migration transaction detection logic to support SafeMigration
contracts in addition to SafeToL2Migration contracts. This fixes the issue
where the Client Gateway couldn't calculate safeTxHash for Safes with null
versions when proposing SafeMigration transactions.

## Changes

- Add `getSafeMigrationDeployments()` helper function in deployments.ts
- Update `detectDelegateMigration()` to check both SafeToL2Migration and
  SafeMigration contracts
- Implement version inference for SafeMigration by checking available
  singletons on the target chain (since SafeMigration functions have no
  parameters and use immutable addresses set at deployment)

## Test Coverage

- Add encoder builder for SafeMigration functions (migrateL2Singleton,
  migrateL2WithFallbackHandler, migrateSingleton, migrateWithFallbackHandler)
- Add 8 comprehensive unit tests covering:
  - Success cases for all 4 SafeMigration functions
  - Rejection of unofficial migration contracts
  - Rejection of non-DELEGATE operations
  - Rejection of transactions without data
  - Version inference behavior when singletons are/aren't available

Fixes production issue where Safe Shield migration transactions were failing
with "422: Could not calculate safeTxHash" error.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: remove unsupported version 1.4.0 from SafeMigration detection

* refactor: remove SafeToL2Migration support, keep only SafeMigration

Simplifies the codebase by removing SafeToL2Migration detection logic
and focusing only on SafeMigration contract support, which is what's
needed for the production issue on opBNB/Binance chains.

## Changes

- Remove SafeToL2Migration ABI import and function decoding
- Remove getSafeToL2MigrationDeployments wrapper function
- Remove ... (continued)

3854 of 4761 branches covered (80.95%)

Branch coverage included in aggregate %.

13 of 14 new or added lines in 2 files covered. (92.86%)

14 existing lines in 2 files now uncovered.

13012 of 13991 relevant lines covered (93.0%)

539.93 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
95.79
2.31% src/domain/common/utils/safe.ts

Uncovered Existing Lines

Lines Coverage ∆ File
2
89.87
-6.33% src/routes/notifications/v1/notifications.controller.ts
12
71.08
-20.27% src/domain/common/utils/deployments.ts
Jobs
ID Job ID Ran Files Coverage
1 run-integration-tests - 18557055253.1 16 Oct 2025 09:42AM UTC 267
84.14
GitHub Action Run
2 run-unit-tests - 18557055253.2 16 Oct 2025 09:46AM UTC 1876
88.71
GitHub Action Run
Source Files on build 18557055253
  • Tree
  • List 954
  • Changed 265
  • Source Changed 2
  • Coverage Changed 265
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #18557055253
  • 4567a182 on github
  • Prev Build on main (#18500569426)
  • Next Build on main (#18594865165)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc