test(evm): wipe stale .openzeppelin manifest before upgradeability test#3431
Conversation
The OZ upgrades plugin caches deployed proxy/impl addresses in contracts/.openzeppelin/unknown-<chainId>.json. After a cluster wipe those addresses no longer exist on-chain and the plugin aborts the Contract Upgradeability test with "No contract at address ... (Removed from manifest)". CI doesn't see this because each job starts from a fresh checkout, but local devs hit it any time they re-run hardhat after a cluster wipe. Drop the manifest in a before() hook scoped to the Upgradeability describe block so each run starts clean. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
PR SummaryLow Risk Overview This prevents the upgrades plugin from aborting on stale proxy/implementation addresses cached from prior runs, without affecting the rest of the EVM test suite. Reviewed by Cursor Bugbot for commit b69914c. Bugbot is set up for automated code reviews on this repo. Configure here. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3431 +/- ##
==========================================
+ Coverage 59.30% 59.37% +0.06%
==========================================
Files 2127 2112 -15
Lines 175833 173673 -2160
==========================================
- Hits 104286 103123 -1163
+ Misses 62464 61573 -891
+ Partials 9083 8977 -106
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
…merge The merge of #3431 (origin/wen/wipe_env_before_contract_upgradeability_test) silently kept our side of setupSigners because #3363 had touched the same region. Apply #3431's intent here: drop associateSigner and the seilocalSignerPrivateKeys lookup, and have setupSigners always use the fundAddress + self-send-tx flow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…merge The merge of #3431 (origin/wen/wipe_env_before_contract_upgradeability_test) silently kept our side of setupSigners because #3363 had touched the same region. Apply #3431's intent here: drop associateSigner and the seilocalSignerPrivateKeys lookup, and have setupSigners always use the fundAddress + self-send-tx flow. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
contracts/.openzeppelin/unknown-<chainId>.json. After a cluster wipe those addresses no longer exist on-chain and the plugin aborts the Contract Upgradeability test withNo contract at address ... (Removed from manifest).before()hook scoped to theContract Upgradeabilitydescribe block so each run starts clean. Scoped narrowly because only this test uses theupgrades.*namespace; other tests in the suite only use@openzeppelin/test-helpers, which doesn't touch the manifest.Test plan
Local verification on this branch (cluster torn down and re-created with
make docker-cluster-stop && rm -rf build/generated, then restarted, then hardhat re-run — the exact scenario that triggered the failure):Contract Upgradeability → Should allow for contract upgradesfails withNo contract at address 0x... (Removed from manifest).✔ Should allow for contract upgrades (1119ms)); rest of the suite unaffected.Note
Low Risk
Low risk: test-only change that deletes the local OpenZeppelin upgrades manifest to avoid false failures after chain resets; no runtime or contract logic is modified.
Overview
Improves the
Contract Upgradeabilitytest reliability by deleting the cached OpenZeppelin upgrades manifest (contracts/.openzeppelin) in abefore()hook so reruns after a chain/cluster wipe don’t fail due to stale proxy/implementation addresses.Reviewed by Cursor Bugbot for commit ef916a5. Bugbot is set up for automated code reviews on this repo. Configure here.