Skip to content

Conversation

@pegahcarter
Copy link
Collaborator

@pegahcarter pegahcarter commented Nov 19, 2025

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

  • frxUSD
  • sfrxUSD
  • frxETH
  • sfrxETH
  • FPI
  • frxBTC

Non-Upgraded Tokens

  • FPIS: it is not supported with a respective LayerZero OFT (natively-bridgeable via L1StandardBridge)
  • WFRAX: the WETH equivalent of FRAX (not natively-bridgable)
  • FRAX: the gas token (natively-bridgeable via OptimismPortalCGT).

Changes

  • BRIDGE(), REMOTE_TOKEN(), l1Token(), l2Bridge(), remoteToken(), and bridge() will now return address(0).
  • mint(address, uint256) and burn(address, uint256) will now revert with Deprecated().
  • New Base Contract: ERC20PermitPermissionedNonBridgeableMintable - A native ERC20 token that cannot be bridged via the native bridge

@pegahcarter pegahcarter changed the title feat(v1.1.0): deprecate native bridging Deprecate native bridging from Fraxtal Nov 24, 2025
@pegahcarter pegahcarter changed the base branch from master to frxusd-upgrade December 2, 2025 16:59
Copilot AI mentioned this pull request Dec 5, 2025
@pegahcarter pegahcarter marked this pull request as ready for review December 18, 2025 19:15
Copilot AI review requested due to automatic review settings December 18, 2025 19:15
Copy link

Copilot AI left a 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 ERC20PermitPermissionedNonBridgeableMintable base 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.

Copy link

Copilot AI commented Dec 22, 2025

@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.

Copilot AI and others added 2 commits December 22, 2025 16:55
Fix typo: rename nativing-bridging to native-bridging
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants