Skip to content

Feature/fly 2184#424

Open
Hakob23 wants to merge 17 commits intov2.6.0from
feature/FLY-2184
Open

Feature/fly 2184#424
Hakob23 wants to merge 17 commits intov2.6.0from
feature/FLY-2184

Conversation

@Hakob23
Copy link
Copy Markdown
Collaborator

@Hakob23 Hakob23 commented Feb 16, 2026

What

Timelock Control Integration

Why

Introduce a delay to the contract upgrades for increasing the reaction time in case of emergency during LPs resignation and withdrawal process

Task

https://rsklabs.atlassian.net/browse/FLY-2184

@Hakob23 Hakob23 requested a review from a team as a code owner February 16, 2026 00:29
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 16, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA dad2c48.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

OpenSSF Scorecard

PackageVersionScoreDetails

Scanned Files

Comment thread example.env
Comment thread script/legacy/deployment/ChangeOwnerToTimelock.s.sol Outdated
Comment thread script/legacy/deployment/ChangeOwnerToTimelock.s.sol Outdated
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should have this script also for the split architecture, because this is going to be merged for the v2.6.0 when that architecture is supposed to be already deployed

@Luisfc68
Copy link
Copy Markdown
Collaborator

@Hakob23 we updated the v2.6.0 branch with the v2.5.0 fixes, pls update the feature branch accordingly when you push the next changes

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Integrates OpenZeppelin TimelockController into the deployment/upgrade workflow to enforce a delay on contract upgrades (legacy LBC + split Flyover architecture), increasing reaction time for emergency scenarios.

Changes:

  • Extend HelperConfig (legacy + flyover configs) with timelock parameters (minDelay/proposer/executor/admin) sourced from env vars.
  • Add deployment scripts to transfer ProxyAdmin ownership to a newly deployed TimelockController, plus a default timelock-roles.json.
  • Add/extend Foundry tests validating timelock-delayed upgrades and ownership transfer behavior.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/helpers/FlyoverTestBase.sol Updates test Flyover config helper to include timelock config fields.
test/deployment/UpgradeLBC.t.sol Adds a test asserting upgrades are blocked until timelock delay elapses.
test/deployment/ChangeOwnerToTimelock.t.sol New tests for legacy + split scripts transferring ProxyAdmin ownership to timelock.
script/legacy/deployment/ChangeOwnerToTimelock.s.sol New legacy script deploying timelock + transferring LBC ProxyAdmin ownership.
script/deployment/ChangeOwnerToTimelock.s.sol New split-architecture script deploying timelock + transferring shared ProxyAdmin ownership.
script/deployment/timelock-roles.json Adds proposer/executor role configuration for mainnet/testnet.
script/HelperConfig.s.sol Adds timelock env-driven config fields for both legacy and flyover configs.
example.env Documents new timelock env vars (partially).
Comments suppressed due to low confidence (1)

example.env:49

  • HelperConfig supports TIMELOCK_ADMIN_* (and the split-architecture script requires PROXY_ADMIN), but this example env file only documents min delay/proposer/executor. Add the missing variables (or clarify they’re optional) so users can configure timelock admin and run script/deployment/ChangeOwnerToTimelock.s.sol without guessing env names.
# Timelock configuration for legacy LBC ownership
# Delay is in seconds. Temporary default in code is 7 days.
TIMELOCK_MIN_DELAY_MAINNET=<delay_seconds>
TIMELOCK_PROPOSER_MAINNET=<proposer_multisig_address>
TIMELOCK_EXECUTOR_MAINNET=<executor_multisig_address>

TIMELOCK_MIN_DELAY_TESTNET=<delay_seconds>
TIMELOCK_PROPOSER_TESTNET=<proposer_multisig_address>
TIMELOCK_EXECUTOR_TESTNET=<executor_multisig_address>

TIMELOCK_MIN_DELAY_LOCAL=<delay_seconds>
TIMELOCK_PROPOSER_LOCAL=<proposer_multisig_address>
TIMELOCK_EXECUTOR_LOCAL=<executor_multisig_address>


You can also share your feedback on Copilot code review. Take the survey.

Comment thread script/deployment/timelock-roles.json
Comment thread script/legacy/deployment/ChangeOwnerToTimelock.s.sol Outdated
Comment thread test/deployment/ChangeOwnerToTimelock.t.sol Outdated
Comment thread script/deployment/ChangeOwnerToTimelock.s.sol
Comment thread script/legacy/deployment/ChangeOwnerToTimelock.s.sol
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