Conversation
v4 was never deployed to any mainnet and is in no tagged release. The code is preserved on the archive/uniswapx-v4 branch. Removes src/v4, test/v4, the v4 quoter deploy script, the v4 sample executor and its test, and four orphaned gas snapshots. Drops the v4-only imports and signing helpers from test/util/PermitSignature.sol.
codyborn
approved these changes
Aug 25, 2026
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.
UniswapX v4 was never deployed to any mainnet and is in no tagged release. It is not in use, so it comes off main and moves to a backup branch.
Backup branch
The full v4 history and code stay on
archive/uniswapx-v4, at commitfd6022568ebeb761008fcc68d5b5a417e0e0a815. That is the state of main before this PR, so nothing is lost. To read a removed file:What this removes
src/v4/and all oftest/v4/.script/DeployV4QuoterAndTokenTransferHook.s.sol.src/sample-executors/V4UniversalRouterExecutor.soland its test. This one is UniswapX v4, not Uniswap AMM v4. It importssrc/v4/interfaces/IReactor.solandsrc/v4/base/ReactorStructs.sol.test/v4/:ReactorTest.json,DCALibGasTest.json,PriorityAuctionResolverTest.jsonandUnifiedReactorTest.json. The last one arrived with the v4 feature commit (feat: UniswapX V4; DCA Hook聽#331) and its producer contract was later renamed toReactorTest, so it was already orphaned.What this edits
test/util/PermitSignature.solis shared with the v1, v2 and v3 tests. This PR removes the four v4 imports, the v4 type hashes, and thesignOrderoverloads forPriorityOrderV2,OrderInfoV2,MockOrderandHybridOrder. Everything the surviving tests use stays._domainSeparatorV4also stays, because the v4 in that name is the EIP-712 domain version, not UniswapX v4.Verification
forge buildpasses with no errors.forge testgives 429 passed and 1 failed. The failure isERC20ETHIntegrationTest.setUpwithvm.getCode: no matching artifact found. It reproduces on unmodified main, so this PR does not cause it.No surviving file under
src,testorscript, and neitherfoundry.tomlnorremappings.txt, still refers to a removed path or symbol.Left alone on purpose
playbook/is untouched. Almost every v4 mention there is the Uniswap AMM PoolManager rather than UniswapX v4. One line inplaybook/chains/robinhood.mddoes point at the removed HybridAuctionResolver, but that file is a dated rollout runbook kept as a record of what was true at the time.Separate issue found while doing this
.github/workflows/audit-agent.ymlpoints the Nethermind quick scan atsrc/v4/**, which stops existing after this PR. I left the file untouched, because the scan path is not the real problem. The file has a duplicated- name: Quick Scankey that makes the YAML invalid, and every run has failed after 0 seconds for at least the last two weeks. Fixing the YAML and picking a new scan path both need a decision from whoever owns that integration, so neither belongs in a deletion PR.