Repository navigation
Base V2 pools: MAX_WITHDRAW_DELAY_TIME 1 day -> 30 days, and a deployer mode for prebuilt pool implementations - #359
Merged
Conversation
Protocol-owner-only setter for withdrawDelayTimeSeconds. Note: with this change the V2 runtime bytecode is 24,756 bytes (solc 0.8.24, optimizer 200, paris), above the EIP-170 24,576-byte limit, so it is not deployable as-is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
…x 30 days)" This reverts commit fdf8520.
Only change vs the deployed implementation 0xd177f4b8... (source commit e30dbeb, solc 0.8.11, optimizer 200) is MAX_WITHDRAW_DELAY_TIME 86400 -> 2592000. Includes source, ABI/bytecode, deploy tx data, constructor args and standard JSON input for verification. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
…tation Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
…cap upgrade Hardhat task that deploys the prebuilt implementation in upgrades/<dir>, checks what landed, locks it via initialize + transferOwnership, verifies the source, and writes Safe Transaction Builder batches for the timelock schedule/execute of the beacon upgrade plus follow-up calls. Not wired into scripts/deploy-chain.sh; nothing invokes it yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
Runs the deploy-pool-v2-impl task for upgrades/<dir>: deploys the prebuilt implementation, locks it, verifies it and prints the Safe batches for the timelock schedule/execute. DEPLOY_POOL_V2_IMPL_DRY_RUN checks the chain and sends nothing. Never pushes artifacts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
Before sending anything, compare the live implementation's runtime code with the reviewed build outside immutable slots and the metadata hash, and report whether the metadata equals the unmodified source's. After deploying, compare new against live the same way and require the only differing immutable values to be manifest.immutableChange (86400 -> 2592000). Adds immutableRanges and originalRuntimeMetadata to the artifact. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
Implementation 0xf5d3E8aCf964d4b95ec87B2E849A5Cee3e62239a, deployed, initialized, owned by the protocol Safe and verified by the chain deployer. Batch 1 schedules the beacon upgrade on the timelock; batch 2, 7200s later, executes it and sets the USDC pool's withdraw delay to 2591999s. Calldata checked against the deploy log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
Step 2 went through the protocol timelock, not a direct upgradeTo, and the pool was set to 14 days rather than the 2591999s in the batch. Records the transactions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Records the Base V2 pool implementation upgrade that is now live, and the chain-deployer mode that shipped it.
What's live on Base
0x7848585b…dc83now runs0xf5d3E8aCf964d4b95ec87B2E849A5Cee3e62239a(verified on Basescan), in place of0xd177f4b8…1a7f.MAX_WITHDRAW_DELAY_TIME = 86400→2592000, on thee30dbeb5source that was deployed, compiled with solc 0.8.11 at 200 runs.0x13cD7cF4…097bhaswithdrawDelayTimeSecondsset to1209600(14 days).Changes
packages/contracts/upgrades/base_pool_v2_max_withdraw_delay_30d/holds the reviewed build:Its
.solsits outsidecontracts/, so neither hardhat nor forge compiles it.helpers/tasks/deploy-pool-v2-impl.tsis a new hardhat task that deploys a prebuilt implementation fromupgrades/<dir>.scripts/deploy-chain.shgets a newDEPLOY_POOL_V2_IMPL=<dir>mode, plus_DRY_RUNand_ADDRESS. It never pushes artifacts.deployments/base/upgrades/…holds the receipt and the Safe batches from the run.Breaking changes
None.
contracts/changes. ThesetWithdrawDelayTimecommit and its revert cancel out.deploy-chain.shmodes are untouched. The new block only runs whenDEPLOY_POOL_V2_IMPLis set.hardhat helpand passestsc.Testing
WDbefore the upgrade.Known issue, not addressed here
The share lock can be bypassed.
_afterTokenTransferstamps only the sender's timestamp, so shares moved to a fresh wallet can be redeemed straight away. Fixing that needs a separate contract change.🤖 Generated with Claude Code
https://claude.ai/code/session_01UrHWEwddMYFYkieyTuKjsG
Generated by Claude Code