-
Notifications
You must be signed in to change notification settings - Fork 2
Deprecate native bridging from Fraxtal #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: frxusd-upgrade
Are you sure you want to change the base?
Conversation
969ad9d to
c78e09a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR deprecates native bridging functionality for Frax assets on Fraxtal (frxUSD, sfrxUSD, frxETH, sfrxETH, FPI, frxBTC), transitioning them to LayerZero-only bridging. A new base contract ERC20PermitPermissionedNonBridgeableMintable is introduced that makes tokens non-bridgeable by reverting on mint/burn operations and returning address(0) for all bridge-related getters.
- Introduced
ERC20PermitPermissionedNonBridgeableMintablebase contract that deprecates native bridge mint/burn functions - Updated six token contracts to extend the non-bridgeable base, removing bridge constructor parameters
- Modified deployment scripts to use simplified constructors without bridge parameters
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
src/contracts/fraxtal/shared/ERC20PermitPermissionedNonBridgeableMintable.sol |
New base contract that overrides mint/burn to revert with Deprecated() error |
src/contracts/fraxtal/shared/ERC20ExWrappedPPOM.sol |
Updated version to 1.1.0, deprecated mint/burn functions, removed bridge initialization code |
src/contracts/fraxtal/frxUSD/FrxUSD.sol |
Removed bridge constructor parameters |
src/contracts/fraxtal/frxUSD/versioning/FrxUSD2.sol |
Changed base to non-bridgeable contract, updated version to 2.1.0, simplified constructor |
src/contracts/fraxtal/frxUSD/versioning/FrxUSD3.sol |
Removed bridge constructor parameters |
src/contracts/fraxtal/sfrxUSD/SfrxUSD.sol |
Removed bridge constructor parameters |
src/contracts/fraxtal/sfrxUSD/versioning/SfrxUSD.sol |
Changed base to non-bridgeable contract, updated version to 1.1.0, simplified constructor |
src/contracts/fraxtal/sfrxUSD/versioning/SfrxUSD2.sol |
Updated version to 2.0.1, removed bridge constructor parameters |
src/contracts/fraxtal/sfrxETH/SfrxETH.sol |
Changed base to non-bridgeable contract, simplified constructor |
src/contracts/fraxtal/fpi/FPI.sol |
Changed base to non-bridgeable contract, simplified constructor |
src/contracts/fraxtal/frxBTC/FrxBTC.sol |
Changed base to non-bridgeable contract, simplified constructor |
src/contracts/fraxtal/fpis/FPIS.sol |
New contract for FPIS that remains bridgeable via native bridge |
src/contracts/fraxtal/fpis/IFPI.sol |
New interface file for FPIS |
src/script/fraxtal/frxUSD/DeployFrxUSD.s.sol |
Updated deployment to use parameterless constructor |
src/script/fraxtal/sfrxUSD/DeploySfrxUSD.s.sol |
Updated deployment to use parameterless constructor |
src/script/fraxtal/2025-12-02-deprecate-nativing-bridging/DeprecateNativeBridging.s.sol |
Deployment script to upgrade all six token proxies |
src/script/fraxtal/2025-12-02-deprecate-nativing-bridging/DeprecateNativeBridging.json |
Generated multisig transaction batch for upgrades |
src/test/FrxUSD/Fraxtal/CompilanceTests.t.sol |
Updated test to use parameterless constructor |
src/test/2025-12-02-deprecate-native-bridging/TestDeprecateNativeBridging.t.sol |
New test verifying mint/burn operations revert after upgrade |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
src/script/fraxtal/2025-12-02-deprecate-nativing-bridging/DeprecateNativeBridging.s.sol
Outdated
Show resolved
Hide resolved
src/script/fraxtal/2025-12-02-deprecate-nativing-bridging/DeprecateNativeBridging.s.sol
Outdated
Show resolved
Hide resolved
src/test/2025-12-02-deprecate-native-bridging/TestDeprecateNativeBridging.t.sol
Outdated
Show resolved
Hide resolved
…ecateNativeBridging.s.sol Co-authored-by: Copilot <[email protected]>
…iveBridging.t.sol Co-authored-by: Copilot <[email protected]>
|
@pegahcarter I've opened a new pull request, #14, to work on those changes. Once the pull request is ready, I'll request review from you. |
Co-authored-by: pegahcarter <[email protected]>
Fix typo: rename nativing-bridging to native-bridging
Description
This is an upgrade to the Fraxtal-native Frax assets to deprecate minting and burning by the native bridge.
Post-upgrade, Frax assets are only bridgeable to Ethereum via LayerZero.
Upgraded Tokens
Non-Upgraded Tokens
Changes
BRIDGE(),REMOTE_TOKEN(),l1Token(),l2Bridge(),remoteToken(), andbridge()will now returnaddress(0).mint(address, uint256)andburn(address, uint256)will now revert withDeprecated().ERC20PermitPermissionedNonBridgeableMintable- A native ERC20 token that cannot be bridged via the native bridge