Pratik Daithankar1) Problem and Migration Scope OpenZeppelin v5 migration in Solidity repos is expensive...
OpenZeppelin v5 migration in Solidity repos is expensive because it combines:
This project focuses on one concrete production migration:
@praddzy/openzeppelin-v5-safe-imports
Real teams delay upgrades because maintenance work is repetitive and risky. The migration value is not only speed, but confidence:
This directly maps to the Boring AI rubric: accuracy, coverage, reliability on real repositories.
The workflow applies allowlisted safe rewrites such as:
@openzeppelin/contracts/security/ReentrancyGuard.sol -> @openzeppelin/contracts/utils/ReentrancyGuard.sol
@openzeppelin/contracts/security/Pausable.sol -> @openzeppelin/contracts/utils/Pausable.sol
IERC20Upgradeable -> IERC20, etc.).Design constraint:
AI is used as a follow-up workflow step for unresolved patterns, not as a replacement for deterministic rewrites.
Captured edge-case backlog (primary validation target):
token_hooks_update_migration: 81removed_module_usage: 60ownable_initializer_initial_owner: 10To minimize false positives:
Zero-regression interpretation used here:
For each real repository:
Environment strategy:
Important: compile/test columns below are command exit codes (0 = success, non-zero = failure), not item counts.
| Target Repo | Baseline Compile (Exit Code) | Baseline Test (Exit Code) | Post Compile (Exit Code) | Post Test (Exit Code) | Regression Any | Verdict | Selected Tier |
|---|---|---|---|---|---|---|---|
| foundry-defi-stablecoin-cu | 0 | 0 | 0 | 0 | false | pass | 4096 |
| openzeppelin-contracts | 0 | 0 | 0 | 0 | false | pass | 4096 |
| openzeppelin-contracts-upgradeable | 0 | 0 | 0 | 0 | false | pass | 4096 |
Aggregate outcome:
This project intentionally does not claim full semantic automation for all OpenZeppelin v5 deltas.
What is automated with confidence:
What is intentionally deferred:
This boundary is deliberate to protect accuracy.
npm ci
npm test
npm run evidence:ai -- --target .codemod-eval-final/openzeppelin-contracts-upgradeable --workflow-path . --output .codemod-eval-final/ai-proof-summary.json
npm run evidence:hackathon -- --workdirs .codemod-eval-final,.codemod-eval --ai-proof .codemod-eval-final/ai-proof-summary.json --output .codemod-eval-final/hackathon-requirements.json
This submission demonstrates a production-oriented migration workflow:
The result is not "magic full automation"; it is a reliable migration system with clear boundaries, measurable evidence, and repeatable execution.