Skip to content

chore: sync branch revshare#644

Merged
0xDiscotech merged 120 commits intosc-feat/rev-sharing-audit-fixesfrom
chore/sync-branch-revshare
Oct 22, 2025
Merged

chore: sync branch revshare#644
0xDiscotech merged 120 commits intosc-feat/rev-sharing-audit-fixesfrom
chore/sync-branch-revshare

Conversation

@0xChin
Copy link
Copy Markdown
Member

@0xChin 0xChin commented Oct 22, 2025

No description provided.

nonsense and others added 30 commits October 3, 2025 14:57
…c is disabled (ethereum-optimism#17696)

* op-acceptance-tests: test that unsafe chain is stalled when ReqResSync is disabled

* address comments
* feat: implement configureTimelockGuard function

- Add configureTimelockGuard function to allow Safes to set timelock delays
- Validate timelock delay between 1 second and 1 year
- Check that guard is properly enabled on calling Safe using getStorageAt()
- Store configuration per Safe with GuardConfigured event emission
- Add comprehensive test suite covering all spec requirements
- Implement IGuard interface for Safe compatibility

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

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

* feat: implement clearTimelockGuard function

- Add clearTimelockGuard function to allow Safes to clear timelock configuration
- Validate that guard is disabled before allowing configuration clearing
- Check that Safe was previously configured before clearing
- Delete configuration data and emit GuardCleared event
- Add comprehensive test suite covering all spec requirements
- Add new errors: TimelockGuard_GuardNotConfigured, TimelockGuard_GuardStillEnabled

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

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

* refactor: extract guard checking logic to internal helper function

- Add internal _getGuard() helper to centralize guard address retrieval
- Update configureTimelockGuard and clearTimelockGuard to use helper
- Reduces code duplication and improves maintainability

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

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

* feat: implement cancellationThreshold function

- Add cancellationThreshold function to return current threshold for a Safe
- Return 0 if guard not enabled or not configured
- Initialize to 1 when Safe configures guard
- Clear threshold when Safe clears guard configuration
- Add comprehensive test suite covering all spec requirements
- Function never reverts as per spec requirements

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

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

* feat: add placeholder functions for remaining TimelockGuard functionality

- Add scheduleTransaction placeholder (Function 4)
- Add checkPendingTransactions placeholder (Function 6)
- Add rejectTransaction placeholder (Function 7)
- Add rejectTransactionWithSignature placeholder (Function 8)
- Add cancelTransaction placeholder (Function 9)
- Update checkTransaction placeholder (Function 5)
- All placeholders have proper signatures and documentation

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

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

* Self review fixes

* Fix warnings on unimplemented functions

* Fix names of test functions

* Satisfy semgrep by removing revert with string

* Remove arg names from unimplemented functions

* Snapshots

* Add interface

* Simplify cancellationThreshold() getter

* Replace _getGuard with isGuardEnabled

* Allow a timelock delay of zero

* TimelockGuard: Add scheduleTransaction()

* Add todo note

* Pseudocode draft of a non-nested timelock

Simpler code

Add cancelTransaction function relying on the Safe's internal logic

undo type change

Add note explaining getScheduledTransactions

* Remove signatures field from ExecTransactionParams

* Refactor tests with improve utils (_getDummyTx, _getSignaturesForTx)

* Test for TransactionCancelled event

* Further improve util functions

* Add approve hash test case

* fix warnings

* Use correct typing for Safe addresses

This is applied to function inputs/outputs as well as mappings and
events

* Add additional scheduleTransaction tests

* Enable specifying which safeInstance in utility functions

* Change cancelTransaction to accept a tx hash

* Add increaseCancellationThreshold to cancelTransaction

* Add configured boolean to guard config

* Fix signature reuse vulnerability in cancelTransaction

Include transaction hash in cancellation signature data to prevent
signatures from being reused across different transactions with the
same nonce. Updates both contract implementation and tests.

* Move signature verification before existence check in scheduleTransaction

* Remove unused console.logs

* Fix increaseCancellationThreshold inputs

* Separate cancellation threshold events from transaction cancellation

Add CancellationThresholdUpdated event and emit it from threshold
modification functions. Remove threshold parameter from TransactionCancelled
event for cleaner separation of concerns.

* Remove unused _txHash argument from resetCancellation function

* Update ITimelockGuard to match implementation

* Use configured flag instead of timelockDelay check in clearTimelockGuard

* Add configuration check to scheduleTransaction and fix test names

* Implement checkTransaction

* Add itest placeholder contract

* Add comment to checkAfterExecution body

* pre-pr checks

* Remove GuardConfig.configured boolean field

We can simply use `timelock > 0` as an indicator of configuration

* Remove clearTimelockGuard

The right way to do this is now just to set timelockDelay to zero.

* Refactor: Add TransactionBuilder library

This library significantly reduces the amount of boilerplace required to
setup a Safe transaction, then schedule, cancel, or execute it.

* Add unreachable AlreadyExecuted error

* Add integration tests

* Add getPendingTransactions function and tests

* Add tests for getScheduledTransaction

* Add _ prefix in front of internal mappings

* Rename viewTimelockGuard to timelockSafeConfigurationper specs

* Add maxCancellationThreshold

* Improve names on getter functions

* Remove @dev tags with invariants

Avoids duplicating logic between specs and implementation

* Update configureTimelockGuard to accept and validate signatures outside of the Safe

* Refactor: use a single struct to store all state for a given Safe

* Do not unnecessarily reset cancellation threshold when config set to 0

* Revert "Update configureTimelockGuard to accept and validate signatures outside of the Safe"

This reverts commit daad53b.

* Move timelockDelay out of unnecessary struct

* Add top level detail natspec, reorder functions by vis and mutability

* Remove test that does not conform to spec

* Add cancelTransactionOnSafe to interface as reverting function

* Add many more comments

* Apply suggestions from code review

Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>

* Fix ITimelockGuard iface to match impl

* Rename arguments for consistency

* Add/fixup @param on events

* Small fixes

* Fix ITimelockGuard declaration

* Improve names on getter functions

* Move ExecTransactionParams into TimelockGuard.sol

* Address comment nits

* Add TimelockGuard_MaxCancellationThreshold_Test and _deploySafe helper

* Fix up iface and comment typos

* Fix storage lookup in test

* Add enum Transaction state and remove cancelled/executed booleans

* add /// @Custom:field on ScheduledTransaction struct

* add /// @Custom:field on ExecTransactionParams struct

* Add SemverComp to enforce minimum Safe version

* Rename empty function to signCancellationForSafe

* Fix location of external view functions

* Add some more comments where helpful.

* Further expand on the maxCancellationThreshold rationale

* Clarify blocking threshold

* iFace fixes

* Fix iface

* Move update of tx state, event emission and cancellationThreshold into checkAfterExection

* Simplified comment

* remove unclear comments

* fix semgrep sol-style-use-abi-encodecall

* snapshots

* Add course of actions table

* Remove unnecessary address arg from signCancellation

* Fix test names

* Fix test name validation

* Remove enabled guard check from configureTimelockGuard

* Allow <ContractName>_Integration_Test in tests

* Add isExcludedTest in checkContractNameFilePath()

* Update semver-lock

* Fix typo

* fix typo in tests

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Alberto Cuesta Cañada <38806121+alcueca@users.noreply.github.com>
…#17512)

* opcm: Support cannon+kona games in updatePrestates

* fmt; and check devfeatures flag at updatePrestate

* update semver and snapshots

* remove duplicate import

* bump semver after rebase

* fix addGameType for SUPER_CANNON_KONA; add more cannon-kona tests

* remove proxyAdmin from UpdatePrestateInput

* update IOPCM interface

* update semver

* check all topics in expectEmit

* add updatePrestate helper function for testing

* lint test

* fix semgrep issues

---------

Co-authored-by: inphi <mlaw2501@gmail.com>
…d via `l1.beacon.skip-blob-verification` flag (ethereum-optimism#17713)

* op-service/L1BeaconClient: allow blob proof verification to be skipped via CLI flag

* assign parameter correctly

* add test at the L1BeaconClient level

* move skip boolean into existing config struct

* tweak flag description
…hereum-optimism#17718)

* op-program: Add skip-blob-verification flag

* op-challenger: add flag to skip blob verification

* Soften warning message for skip blob verification
…ereum-optimism#17633)

* feat(op-conductor): rollup-boost partial unhealthiness tolerance

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

* rlock protection to currentValue function

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

* timeboundcounter separate file and unit tests

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

* comment about the concurrent access bad path testing

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

* nit

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

* shift the max value logic to health monitor

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

* nit

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>

---------

Signed-off-by: Yashvardhan Kukreja <yashvardhan@oplabs.co>
…thereum-optimism#17725)

* recompute blob proof if skipBlobVerification

* use even simpler verification

* replace verification logic

* refactor to make verification more direct

This approach does not use any additional data from the beacon endpoint, aside from the blob itself, so anticipates future API changes where this will be the only data provided.

* tweak comments

* rename to verifyBlob

* tweak test comments

* Revert "op-service/L1BeaconClient: allow blob proof verification to be skipped via `l1.beacon.skip-blob-verification` flag (ethereum-optimism#17713)"

This reverts commit 05ba528.

* Revert "Add `skip-blob-verification` flag to op-program and op-challenger  (ethereum-optimism#17718)"

This reverts commit 3ee883b.

* add an extra unit test
* op-service/txplan: support blob txs

* op-service/txinclude: handle future nonce gaps

This can happen when we get mempool errors like "nonce too high", which
itself can occur when we hit "account limit exceeded" errors in the blob
pool.

* sysgo: add Osaka activation test

* sysext: infer L1 config when possible
…m#17722)

* op-challenger: convert l1 genesis flag to VMFlag

* Disallow l1-genesis flag use with the network flag

* typo

* another typo

---------

Co-authored-by: geoknee <georgeknee@googlemail.com>
…7714)

* op-service: Engine APIs

* op-devstack: L2EL Engine API support: op-geth

* Handle Read Only ELs

* Move to different dir

* op-devstack: DSL for ref by hash and FCU

* op-acceptance-tests: Manual Verifier Sync

* op-acceptance-tests: Manual Verifier Sync: Harden

* op-devstack: godoc and better var naming
* upgrade controller removed from OPCM

* renamed upgradeController to l1PAO in DeployImplementations.Input

* Update semver

* Remove upgradeController from the docs

* Fix VerifyOPCM

* Did quite the find and replace here

* The OPCM constructor only takes 24 slots now

* Some straggler renamings

* Fix: semver-lock

* Doh

* Snapshots?

* lint

* Fixed the last of the lint with the power of regex

* fixed linting

* L1PAO == SuperchainProxyAdminOwner

* We shouldn't need to pass the upgrade controller to op-deployer to deploy opcm anymore

* L1PAO != SuperchainPAO

* Let's accept both the backwards compatible UPGRADE_CONTROLLER and the new L!_PROXY_ADMIN_OWNER

* Maybe I'll need to drop UPGRADE_CONTROLLER

* addressed comments from @bitwiseguy

* Needed the three dots, it seems

* Shortened form of L1PAO not used in code anymore

* update semver-lock and opcm bytecode

* *sigh*
ethereum-optimism#17730)

* build(ci): add manual workflow for AI contracts test maintenance system

- add ai_contracts_test_dispatch parameter for manual pipeline triggering
- add ai-contracts-test job that runs just ai-contracts-test command
- add ai-contracts-test-workflow with manual dispatch only
- use devin-api context for Devin API credentials
- set 60 minute timeout for AI contract test execution

* build(ci): store log artifact in AI contracts test workflow

- add store_artifacts step to save log.jsonl from test runs

* fix: handle socket timeouts in devin API client

- add TimeoutError exception handling in _make_request function
- update version to 0.3.2

* docs(ci): add runbook reference to AI contracts test job
…mism#17692)

Adds semi-automated promotions to our FlakeShake system, by:
- Reviewing the flake-shake results for promotion candidates
- Creating a PR for the promotion-ready tests
- Notifying us of this on Slack
…m#17736)

* beacon client: use new fusaka endpoint to get blobs

Fallback to old endpoint on error.

* unexport method

* tests: rename clientWithValidation -> client

* remove comments

* Update op-service/sources/l1_beacon_client.go

---------

Co-authored-by: geoknee <georgeknee@googlemail.com>
…timism#17752)

* op-devstack: engine: FCU retry helper

* op-devstack: Helper for L2EL p2p removal

* op-acceptance-tests: ELP2P for EL Syncing for unsafe gap

* op-acceptance-tests: ELP2P newPayload not retained automatically

* op-acceptance-tests: Better comments
…rough env vars. (ethereum-optimism#17746)

Previously, the enabled case was tested by explicitly enabling the dev flag but CI has been updated to run all tests with and without the flag enabled.
The explicit enabling gets in the way of testing creator pattern changes.
…mism#17721)

- add test for version constant
- ensure comprehensive coverage of all public elements

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Adds a new make gen-binding command for generating or updating go
bindings for a contract.
Also includes documentation in the op-e2e README.
…sm#17776)

* op-deployer: Do not create cache directory on import

* create the one the flag makes
…mism#17775)

* op-acceptance-tests: Add smoke tests for disputegamev2

* add missing skip
…rs`) (ethereum-optimism#17778)

* remove GetBlobSidecars from L1BlobSource

* remove tests

* tweak comments

* fix test
* fix(op-acceptance-tests): flake-shake; job URL.

Make the job URL in our Slack notification point to the artifacts tab of the report job URL.

* fix(op-acceptance-tests): flake-shake; add job URL to PR body.

* fix(op-acceptance-tests): flake-shake; report owner.

* fix(op-acceptance-tests): flake-shake; tweaked defaults.
…ethereum-optimism#17781)

* fix(circleci): always run contracts-bedrock-build before docker-build

* fix(circleci): include op-deployer in scheduled-docker-publish
* Interfaced CLI Context

* No more side-effect initialization

* Wire L1 and Server Overrides to Initialization

* add permissable side-effects and mark with comments

* Address Adrian's Comments
geoknee and others added 25 commits October 21, 2025 09:56
…7940)

Jovian blocks can have a non-zero blobGasUsed value, as the DA footprint
is stored in it.
…nction (ethereum-optimism#17902)

* remove the superchainProxyAdmin input from upgradeSuperchainConfig function

* pull and update

* fix semver
* Add SaferSafes as child of the module and guard

* Add ISaferSafes

* Test comment and assertion fixes

* Improve comments

* Make LivenessModule2 and TimelockGuard abstract

Move semver to SaferSafes

semver lock

* fix test contract name

* Move semver to SaferSafes

* Disable the guard and module upon ownership transfer

* Add _disableThisGuard function

* Update tests

* Add config resets

* fmt

* fix test_changeOwnershipToFallback_canRechallenge_succeeds

* Simplify by clearing config directly

* Put _disableThisGuard into child contract

* Add timelockDelay reset on _disableThisGuard

* semver-lock

* Move _disableThisGuard logic into TimelockGuard

* clear livenessSafeConfig at tend of _disableThisModule

* Clarify use of SENTINEL_OWNER

* Fix the ordering of the disableGuard and disableModule calls

* semver-lock

* remove unused imports

* rename _disableThisGuard to _disableGuard

* bump semver

* Add test to remove unrelated guard

* Add SENTINEL_MODULE constant

* Clean up using ternary if

* Reset cancellationThreshold to 0 on changeOwnership

* Fix moduleFound if/else handling

* Clear pending transactions

* Pre-pr fixes

* Add test contract to test name lint exclusions

* fix name of test contract

* Move _disableGuard impl into TimelockGuard

* Add missing natspec

* Add gas limit testing on changeOwnershipToFallback

* Remove interfaces for abstract contracts

* Move state changes out into internal _clearLivenessModule

* Improve names on the internal _disableX methods

* Add clearTimelockGuard function

* Add _disableGuard helper to TLG tests

* Limit number of transactions cancelled to 100

* Revert "Remove interfaces for abstract contracts"

This reverts commit bd03288.

* Move livenessModule2 address into TestUtils

Reduces diff a bit

* Reduce diff somewhat

* Remove unused arg

* Update packages/contracts-bedrock/src/safe/TimelockGuard.sol

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

* Fix iface

* update abi for iface fix

* Do not clear or disable the module during ownership transfer

* Fix inaccurate comment on _disableAndClearGuard

* Further improve comment

* remove unused import

* fix test name

* Do not clear guard during changeOwnershipToFallback

* Remove unused SENTINEL_MODULE var

* Remove dangling comment

* Revert "Remove dangling comment"

This reverts commit d266d12.

* Fix whitespace

* remove unnecessary internal _clearTimelockGuard function

It's no longer reused in the change ownership call.

* Address feedback

* Add missing assertion

* Move guard slot into constants

* semver-lock

* Remove LivenessModule from semver-lock

* fix: fmt, semver-lock, unused imports

* Remove unused variable

* fix semver lock by resetting old LivenessModule

* fix unused import

* Require that msgSender be an owner of the Safe

* fix compiler error

* Fix placement of _msgSender check

* semver-lock

* Add TimelockGuard_NotOwner test

* Bump semver

* Add test comment, make into fuzz test

* Improvements to SaferSafes styling (ethereum-optimism#17903)

* Add public getter livenessSafeConfiguration to return a struct rather than tuple

* Use Safe as input type to mappings and functions on LivenessModule2

* Add dividers based on function type

* fmt

* snapshots

* Remove conditional return of 0 in the cancellationThreshold if the guard is not enabled

* rename timelockConfiguration func to timelockDelay

* semver-lock

* Add missing natspec on tests and convert to fuzzing where possible

* fix import and abi snapshot

* fix: off by one error in challenge period test

* fix test name

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
* op-service: always fall back to fetching blob sidecars

Previously, we only reverted to fetching sidecars when an error was
received from the beacon server. In an attempt to be more robust,
we also fetch sidecars when the beacon server gives us a semantically
invalid response.

* op-service: rearrange blobs based on provided hashes

The behavior in the post-Fulu /blobs/ happy path and the
/blob_sidecars/ fallback slightly differed: in the former case,
returned blobs were ordered based their index in the blob, while in the
latter case they were ordered based on the provided hashes.

This bug was not caught in testing because all calls to BeaconBlobs
provide a slice of hashes sorted by index.
…thereum-optimism#17913)

* GasPriceOracle: remove saturating math fro getOperatorFee (isthmus and jovian)

Extend test coverage to edge cases

* restore Isthmys formula

* fix test

* use library

* lint

* semver bump

* modify semver and regenerate lock file
* Add SaferSafes as child of the module and guard

* Add ISaferSafes

* Test comment and assertion fixes

* Improve comments

* Make LivenessModule2 and TimelockGuard abstract

Move semver to SaferSafes

semver lock

* fix test contract name

* Move semver to SaferSafes

* Disable the guard and module upon ownership transfer

* Add _disableThisGuard function

* Update tests

* Add config resets

* fmt

* fix test_changeOwnershipToFallback_canRechallenge_succeeds

* Simplify by clearing config directly

* Put _disableThisGuard into child contract

* Add timelockDelay reset on _disableThisGuard

* semver-lock

* Move _disableThisGuard logic into TimelockGuard

* clear livenessSafeConfig at tend of _disableThisModule

* Clarify use of SENTINEL_OWNER

* Fix the ordering of the disableGuard and disableModule calls

* semver-lock

* remove unused imports

* rename _disableThisGuard to _disableGuard

* bump semver

* Add test to remove unrelated guard

* Add SENTINEL_MODULE constant

* Clean up using ternary if

* Reset cancellationThreshold to 0 on changeOwnership

* Fix moduleFound if/else handling

* Clear pending transactions

* Pre-pr fixes

* Add test contract to test name lint exclusions

* fix name of test contract

* Move _disableGuard impl into TimelockGuard

* Add missing natspec

* Add gas limit testing on changeOwnershipToFallback

* Remove interfaces for abstract contracts

* Move state changes out into internal _clearLivenessModule

* Improve names on the internal _disableX methods

* Add clearTimelockGuard function

* Add _disableGuard helper to TLG tests

* Limit number of transactions cancelled to 100

* Revert "Remove interfaces for abstract contracts"

This reverts commit bd03288.

* Move livenessModule2 address into TestUtils

Reduces diff a bit

* Reduce diff somewhat

* Remove unused arg

* Update packages/contracts-bedrock/src/safe/TimelockGuard.sol

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

* Fix iface

* update abi for iface fix

* Do not clear or disable the module during ownership transfer

* Fix inaccurate comment on _disableAndClearGuard

* Further improve comment

* remove unused import

* fix test name

* Do not clear guard during changeOwnershipToFallback

* Remove unused SENTINEL_MODULE var

* Remove dangling comment

* Revert "Remove dangling comment"

This reverts commit d266d12.

* Fix whitespace

* remove unnecessary internal _clearTimelockGuard function

It's no longer reused in the change ownership call.

* Address feedback

* Add missing assertion

* Move guard slot into constants

* semver-lock

* Remove LivenessModule from semver-lock

* fix: fmt, semver-lock, unused imports

* Remove unused variable

* fix semver lock by resetting old LivenessModule

* fix unused import

* Require that msgSender be an owner of the Safe

* fix compiler error

* Fix placement of _msgSender check

* semver-lock

* Add TimelockGuard_NotOwner test

* Bump semver

* Add test comment, make into fuzz test

* Improvements to SaferSafes styling (ethereum-optimism#17903)

* Add public getter livenessSafeConfiguration to return a struct rather than tuple

* Use Safe as input type to mappings and functions on LivenessModule2

* Add dividers based on function type

* fmt

* snapshots

* Remove conditional return of 0 in the cancellationThreshold if the guard is not enabled

* rename timelockConfiguration func to timelockDelay

* semver-lock

* Add missing natspec on tests and convert to fuzzing where possible

* fix import and abi snapshot

* fix: off by one error in challenge period test

* fix test name

* refactor(test): split clearLivenessModule tests into separate contract

- Create LivenessModule2_ClearLivenessModule_Test contract
- Rename test_clear_* to test_clearLivenessModule_* for consistency
- Update contract title to match function under test

* test(LivenessModule2): add challenge cancellation to clearLivenessModule test

Enhance test_clearLivenessModule_succeeds to verify that clearing also
properly cancels any active challenge, covering the _cancelChallenge
code path.

* test(LivenessModule2): add guard removal check to ownership transfer test

Integrate guard removal verification into existing fuzz test rather than
creating a separate test. Verifies that any guard set on the Safe is
properly removed during the ownership transfer process.

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

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

* Remove pointless check

Slop that got through

* Convert to fuzz tests

* test(TimelockGuard): enhance test coverage and convert to fuzz tests

- Convert configureTimelockGuard tests to fuzz tests for broader coverage
- Add comprehensive checkAfterExecution tests for all code paths
- Remove redundant assertions and comments
- Add test to verify transaction cannot be re-executed after success
- Improve test documentation and structure

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

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

* fix test name to match function name

* feat: two extra tests to fuzz

* fix: fmt

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: JosepBove <josep@oplabs.co>
* feat: IERC165 support

* fixes

* fmt

* fix: maurelian's feedback

* feat: matt's review

* fix: pre-pr

* fix: semver
…17782)

* opcm: Add support for V2 contracts in addGameType

Tests failing when V2 is enabled because the expected L2 chain ID is loaded incorrectly.

* opcm: Make a bunch more tests pass.

* opcm: Fix test_addGameType_reusedDelayedWETH_succeeds by deploying a proxy and initialising correctly.

* opcm: Check gameType via created game.

* opcm: Add additional checks into existing test.

* opcm: Assert all common immutable fields of dispute games.

* opcm: Fix imports

* opcm: Inherit DisputeGames higher up in tests.

* opcm: Assert actual chain ID

* opcm: Load anchor state registry from the system config

* opcm: Remove outdated comment.
* Remove empty code-freezes page

* Add release-process.md

* Update packages/contracts-bedrock/book/src/policies/release-process.md

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

* Apply suggestions from code review

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

* Update packages/contracts-bedrock/book/src/policies/release-process.md

* Update packages/contracts-bedrock/book/src/policies/release-process.md

* Update packages/contracts-bedrock/book/src/SUMMARY.md

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

* Use real numbers in <ol>

* Update release-process.md

* Clarify that semver bump on develop applies to modified contracts

Co-authored-by: George Knee <georgeknee@googlemail.com>

---------

Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
Co-authored-by: George Knee <georgeknee@googlemail.com>
…17915)

* op-node: revive async block processing timing log

* op-node: add clarifying comments to logBlockProcessingMetrics
…gs. (ethereum-optimism#17958)

The implementation contract doesn't always have the values embedded.
* Updated the gnosis safe libs to 1.5.0

* Mass renaming

* Added ERC165 support to TimelockGuard

* Removed LivenessGuard and LivenessModule as they are deprecated

* REimplemented safe.encodeTransactionData

* Fix overrides and validator.isValidSignature call

* Updated .gitmodules to 1.5.0

* fixed test_changeOwnershipToFallback_withOtherGuard_succeeds

* fixed eip-1271 magic value

* Revert Enum to common

* Revert `isValidSignature`

* ITransactionGuard -> Guard

* Revert `encodeTransactionData`

* Revert EIP1271_MAGIC_VALUE

* fix: submodule version bug

* fix: compile

* fix: conflicts and bring old liveness back

* fix: rm unused var

* fix: guard to baseguard and versions

* feat: dummyguard

* feat: optimizer on op-service

* feat: timelockguard guard to baseguard

---------

Co-authored-by: JosepBove <josep@oplabs.co>
…-optimism#17967)

* Add runtime batcher flushing instructions

Added instructions for manually triggering the batcher to post data to the DA layer.

* Update op-batcher/readme.md

* add cast rpc variants

* fix misleading comment

* note on admin API

* respond to review
* update jovian upgrade transactions

* add GPO sanity checks to jovian activation test

* lint
…thereum-optimism#17977)

* op-chain-ops/genesis: add MinBaseFee to L2InitializationConfig

Closes ethereum-optimism#17862

* revert changes to submodule

* respond to review
…mism#17975)

* Moved `delete challengeStartTime[_safe]` up

* I though pre-pr did this

* Version and semver-lock fix

* minor version bump
@0xChin 0xChin requested a review from 0xDiscotech October 22, 2025 17:36
@0xChin 0xChin self-assigned this Oct 22, 2025
@0xDiscotech 0xDiscotech merged commit 46fb153 into sc-feat/rev-sharing-audit-fixes Oct 22, 2025
2 checks passed
@0xDiscotech 0xDiscotech deleted the chore/sync-branch-revshare branch October 22, 2025 17:42
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.