feat: migrate USDat from M-backed JMIExtension to PYUSDX MultiMint #1
Open
PierrickGT wants to merge 3 commits into
Open
feat: migrate USDat from M-backed JMIExtension to PYUSDX MultiMint #1PierrickGT wants to merge 3 commits into
PierrickGT wants to merge 3 commits into
Conversation
Re-point the USDat implementation at the PYUSDX MultiMint base and add the upgrade-only migration path: - USDat extends MultiMint/ForcedTransferable, exposes `migrate` (reinitializer) instead of `initialize`; production is upgrade-only behind the existing proxy - UpgradeUSDatBase: claim outstanding M yield (permissionless) then upgrade + migrate, registering held M as a replaceable alt-asset; drop the JMIExtension storage-layout reference (skipped) and allow the missing initializer - Reorganize interfaces under src/interfaces/ (IUSDat, IMTokenLike + isEarning) - foundry.toml: enable ast/build_info/storageLayout for OZ upgrade validation - Tests: PYUSDX swapIn/swapOut unit suite (wrap/unwrap, whitelist, freeze, pause, forced transfer, migrate, replaceAsset) and a mainnet-fork upgrade test asserting state, holder balances, role continuity, and M earning stop
- Remove lib/solady: vestigial from the M-extensions era; nothing in the compiled tree imports it (verified the build passes without it). - Remove lib/openzeppelin-contracts-upgradeable: OpenZeppelin is already vendored by PYUSDX (common/lib). Remap @OpenZeppelin and openzeppelin-contracts(-upgradeable) into PYUSDX's copies so our imports resolve to the same OZ the USDat inheritance chain (MultiMint -> Extension) already uses (upgradeable v5.3.0, contracts v5.5.0). - Update .gitmodules and foundry.lock accordingly. Full suite (54 unit + 4 fork) green against the PYUSDX-provided OZ.
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.
chore(lib): replace lib/m-extensions by lib/PYUSDX
feat: migrate USDat from M-backed JMIExtension to PYUSDX MultiMint
Re-point the USDat implementation at the PYUSDX MultiMint base and add the upgrade-only migration path:
migrate(reinitializer) instead ofinitialize; production is upgrade-only behind the existing proxysrc/interfaces/(IUSDat, IMTokenLike +isEarning)chore: drop unused solady and top-level OZ submodules
Related PRs: