Skip to content

Cherry-pick Safe directory changes from develop to op-safe-contracts/v1.0.0#18371

Merged
JosepBove merged 4 commits intoproposal/op-safe-contracts/v1.0.0from
jb/cherry-pick-safe-changes-to-v1.0.0
Nov 24, 2025
Merged

Cherry-pick Safe directory changes from develop to op-safe-contracts/v1.0.0#18371
JosepBove merged 4 commits intoproposal/op-safe-contracts/v1.0.0from
jb/cherry-pick-safe-changes-to-v1.0.0

Conversation

@JosepBove
Copy link
Copy Markdown
Member

Summary

This PR cherry-picks all Safe directory changes from develop that occurred after the op-safe-contracts/v1.0.0 tag was created. This ensures the Safe contracts on the v1.0.0 branch match the latest improvements on develop.

Changes

Cherry-picked the following commits:

  1. feat(ctb): Add the nonce and txHash into the ScheduledTransactions struct (feat(ctb): Add the nonce and txHash into the ScheduledTransactions struct #18097)

    • Adds nonce and txHash fields to the ScheduledTransactions struct in TimelockGuard
    • Updates ITimelockGuard interface and tests
  2. Safer Safes audit fixes (no bytecode changes) (Safer Safes audit fixes (no bytecode changes) #18147)

    • Improves natspec documentation
    • Bumps safe nonce when cancelling transactions
    • Clarifies trade-offs and design decisions
  3. SaferSafes audit fixes 2 (SaferSafes audit fixes 2 #18172)

    • Adds missing indexed to events
    • Prevents configuring non-enabled safes
    • Disallows safe address as fallback owner
    • Disallows zero timelock delay
  4. Recommended a Safe fallback owner (Recommended a Safe fallback owner #18239)

    • Adds recommendation for Safe fallback owner in natspec

Files Changed

  • src/safe/LivenessModule2.sol
  • src/safe/SaferSafes.sol
  • src/safe/TimelockGuard.sol
  • test/safe/LivenessModule2.t.sol
  • test/safe/TimelockGuard.t.sol
  • interfaces/safe/ITimelockGuard.sol
  • Updated snapshots and semver-lock

Verification

All cherry-picks were successful with no conflicts. The Safe directory now matches develop.

maurelian and others added 4 commits November 24, 2025 18:25
…ruct (#18097)

* feat(ctb): Add the nonce and txHash into the ScheduledTransactions struct

* chore(ctb): bump the semver on SaferSafes

* feat(ctb): txHash at start of struct

* semver-lock

* fix ITimelockGuard to match

---------

Co-authored-by: Alberto Cuesta Cañada <alberto@oplabs.co>
* Typo

* Fix natspec notice

* `_blockingThreshold` natspec

* Bump the safe nonce when cancelling

* Accepted trade-off

* We allow cancelling transactions from disabled guards.

* Fixed `changeOwnershipToFallback` natspec.

* Updated version and semver-lock

* Typo
* Missing `indexed` in an event

* Don't allow configuring a non-enabled safe

* Version and semver-lock

* Disallow the safe address as a fallback owner

* Document why we prefer not to revert

* Disallow a timelock delay of zero, use `setGuard(0)` instead.

* lint and semver-lock

* Simpler natspec

* Update test description

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
@JosepBove JosepBove requested a review from a team as a code owner November 24, 2025 21:29
@JosepBove JosepBove requested review from mds1 and removed request for a team November 24, 2025 21:29
@codecov
Copy link
Copy Markdown

codecov bot commented Nov 24, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.62%. Comparing base (cb54822) to head (4c2e1c9).
⚠️ Report is 1 commits behind head on proposal/op-safe-contracts/v1.0.0.

Additional details and impacted files
@@                        Coverage Diff                         @@
##           proposal/op-safe-contracts/v1.0.0   #18371   +/-   ##
==================================================================
  Coverage                              81.62%   81.62%           
==================================================================
  Files                                    120      120           
  Lines                                   6480     6482    +2     
==================================================================
+ Hits                                    5289     5291    +2     
  Misses                                  1191     1191           
Flag Coverage Δ
contracts-bedrock-tests 81.62% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...ges/contracts-bedrock/src/safe/LivenessModule2.sol 98.75% <100.00%> (ø)
packages/contracts-bedrock/src/safe/SaferSafes.sol 100.00% <ø> (ø)
...kages/contracts-bedrock/src/safe/TimelockGuard.sol 97.14% <100.00%> (+0.05%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@JosepBove JosepBove merged commit e3c3b8d into proposal/op-safe-contracts/v1.0.0 Nov 24, 2025
66 of 69 checks passed
@JosepBove JosepBove deleted the jb/cherry-pick-safe-changes-to-v1.0.0 branch November 24, 2025 21:55
@JosepBove JosepBove restored the jb/cherry-pick-safe-changes-to-v1.0.0 branch November 24, 2025 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants