Skip to content
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

V3 liquidity commands #355

Merged
merged 47 commits into from
Jul 23, 2024
Merged
Show file tree
Hide file tree
Changes from 45 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
60c4fc8
import with dif version of OZ
dianakocsis Jun 18, 2024
c70c9ff
fix remapping issue
gretzke Jun 18, 2024
568eafa
duplicate exports and v3 version error
dianakocsis Jun 18, 2024
c30a295
remove else statement and fix format
dianakocsis Jun 18, 2024
7b63210
fix duplicate IERC165 in typechain
gretzke Jun 20, 2024
ec7e6e8
permit, decrease, collect, burn commands
dianakocsis Jun 24, 2024
dee9fd3
all v3 commands separately
dianakocsis Jun 25, 2024
89a56e4
add structs
dianakocsis Jun 25, 2024
44c77ee
remove mint and increaseLiquidity on v3
dianakocsis Jun 25, 2024
0ff8024
test change
dianakocsis Jun 26, 2024
83567fa
fix yarn.lock
dianakocsis Jun 26, 2024
aab39ee
pass foundry tests for now
dianakocsis Jun 26, 2024
519ca80
nit - change name
dianakocsis Jun 26, 2024
4d0d406
spelling error
dianakocsis Jun 26, 2024
af22cfe
v3pm address not needed
dianakocsis Jun 26, 2024
ab21582
some gas tests
dianakocsis Jun 26, 2024
e65d3c5
check msg.sender
dianakocsis Jun 27, 2024
caad744
format
dianakocsis Jun 27, 2024
77e6879
transient storage
dianakocsis Jun 27, 2024
0d685e3
unauthorized tests
dianakocsis Jun 28, 2024
70e7e8a
transient storage
dianakocsis Jul 1, 2024
21b7cd0
v3 multicall with tests
dianakocsis Jul 1, 2024
4726a9c
v3 call + transient storage
dianakocsis Jul 1, 2024
4aea013
no decode
dianakocsis Jul 1, 2024
c2eaed0
clean up tests
dianakocsis Jul 1, 2024
1aca629
some changes
dianakocsis Jul 12, 2024
31b15bf
comment changes
dianakocsis Jul 12, 2024
bb39a36
suggestion fixes
dianakocsis Jul 14, 2024
40712fc
regenerate yarn.lock file
dianakocsis Jul 16, 2024
8296d4a
revert yarn.lock
dianakocsis Jul 16, 2024
fd63875
some changes
dianakocsis Jul 17, 2024
567558c
separate migration tests
dianakocsis Jul 18, 2024
b90b7bd
bignumber to fix test
dianakocsis Jul 18, 2024
eae1ffa
fix remappings for forge compile
dianakocsis Jul 18, 2024
d1f76f0
remove command placeholder
dianakocsis Jul 18, 2024
3349feb
remove transient storage
dianakocsis Jul 22, 2024
0d37076
format
dianakocsis Jul 22, 2024
762158d
use v3 periphery 0.8 instead
dianakocsis Jul 22, 2024
30d9e6d
fix gas snapshots
dianakocsis Jul 22, 2024
62e5ff8
v3 position manager addresses
dianakocsis Jul 22, 2024
af02244
name change
dianakocsis Jul 22, 2024
19a0a42
remove v4 in this pr
dianakocsis Jul 22, 2024
fde31eb
remove unnecessary stuff
dianakocsis Jul 22, 2024
ee2dfc5
change test names
dianakocsis Jul 22, 2024
f4c4cf3
fix erc721 permit
dianakocsis Jul 22, 2024
3575bb3
more tests
dianakocsis Jul 23, 2024
47d93fb
name changes, comments, test
dianakocsis Jul 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,6 @@
[submodule "lib/permit2"]
path = lib/permit2
url = git@github.com:Uniswap/permit2.git
[submodule "lib/v3-periphery"]
path = lib/v3-periphery
url = https://github.com/uniswap/v3-periphery
2 changes: 2 additions & 0 deletions contracts/UniversalRouter.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import {PaymentsImmutables, PaymentsParameters} from './modules/PaymentsImmutabl
import {UniswapImmutables, UniswapParameters} from './modules/uniswap/UniswapImmutables.sol';
import {Commands} from './libraries/Commands.sol';
import {IUniversalRouter} from './interfaces/IUniversalRouter.sol';
import {MigratorImmutables, MigratorParameters} from './modules/MigratorImmutables.sol';

contract UniversalRouter is IUniversalRouter, Dispatcher {
modifier checkDeadline(uint256 deadline) {
Expand All @@ -20,6 +21,7 @@ contract UniversalRouter is IUniversalRouter, Dispatcher {
UniswapParameters(params.v2Factory, params.v3Factory, params.pairInitCodeHash, params.poolInitCodeHash)
)
PaymentsImmutables(PaymentsParameters(params.permit2, params.weth9))
MigratorImmutables(MigratorParameters(params.v3NFTPositionManager))
{}

/// @inheritdoc IUniversalRouter
Expand Down
348 changes: 194 additions & 154 deletions contracts/base/Dispatcher.sol

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions contracts/base/RouterImmutables.sol
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ struct RouterParameters {
address v3Factory;
bytes32 pairInitCodeHash;
bytes32 poolInitCodeHash;
address v3NFTPositionManager;
}
3 changes: 3 additions & 0 deletions contracts/libraries/Commands.sol
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ library Commands {
// The following constant defines one of the boundaries where the if blocks split commands
uint256 constant SECOND_IF_BOUNDARY = 0x10;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is separate to this PR but I think this is odd.. to have SECOND_IF_BOUNDARY as a command? Cause its not really a command.. why not just make the logic command < Command. ERC721_PERMIT? or basically just whatever the command that exists on that boundary
@hensha256 ?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah we just thought it was easier to read in the dispatcher to have boundaries... but i see that its confusing to have it in the commands file

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess you could make it a separate constant and just the only downside is we have two constants equal to the same value?


uint256 constant ERC721_PERMIT = 0x10;
uint256 constant V3_POSITION_MANAGER_CALL = 0x11;

// The commands are executed in nested if blocks to minimise gas consumption
// The following constant defines one of the boundaries where the if blocks split commands
uint256 constant THIRD_IF_BOUNDARY = 0x18;
Expand Down
17 changes: 17 additions & 0 deletions contracts/modules/MigratorImmutables.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.24;

import {INonfungiblePositionManager} from '@uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol';

struct MigratorParameters {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any particular reason this is in a struct and is not just passed in as an address?

when I read MigratorParameters I was expecting it to be information about the v3 position to be migrated

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because itll also include v4 position manager so this struct is just preemptively there i think.
Its following the pattern of naming of

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could change it but at this point it would be a bigger renaming overhaul of UR 😅

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah i just followed the pattern from the others! and we'll have v4posm in there too

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sg

address v3PositionManager;
}

contract MigratorImmutables {
/// @dev v3PositionManager address
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be /// @notice

///@dev is used when there is something particular about integration that maybe is not obvious to a developer reading the code

For example:

/// @notice helper function to transfer ERC20s
/// @dev passing in address(0) will use the msg.sender address
function sendTo(address addr) {

}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed PaymentsImmutables too

INonfungiblePositionManager internal immutable V3_POSITION_MANAGER;

constructor(MigratorParameters memory params) {
V3_POSITION_MANAGER = INonfungiblePositionManager(params.v3PositionManager);
}
}
19 changes: 19 additions & 0 deletions contracts/modules/V3ToV4Migrator.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.24;

import {MigratorImmutables} from '../modules/MigratorImmutables.sol';
import {INonfungiblePositionManager} from '@uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol';

abstract contract V3ToV4Migrator is MigratorImmutables {
function isValidAction(bytes4 selector) internal pure returns (bool) {
return selector == INonfungiblePositionManager.decreaseLiquidity.selector
|| selector == INonfungiblePositionManager.collect.selector
|| selector == INonfungiblePositionManager.burn.selector;
}

function isAuthorizedForToken(address caller, uint256 tokenId) internal view returns (bool) {
address owner = V3_POSITION_MANAGER.ownerOf(tokenId);
return caller == owner || V3_POSITION_MANAGER.getApproved(tokenId) == caller
|| V3_POSITION_MANAGER.isApprovedForAll(owner, caller);
}
}
5 changes: 0 additions & 5 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ evm_version = "cancun"
optimizer_runs = 1_000_000
fs_permissions = [{ access = "read", path = "./script/deployParameters/"}]

remappings = [
"solmate/=lib/solmate/",
"permit2/=lib/permit2/",
]

[fmt]
line_length = 120
quote_style = 'single'
Expand Down
1 change: 1 addition & 0 deletions lib/v3-periphery
Submodule v3-periphery added at b325bb
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@
"node": ">=14"
},
"dependencies": {
"@openzeppelin/contracts": "4.7.0",
"@uniswap/v2-core": "1.0.1",
"@uniswap/v3-core": "1.0.0",
"@openzeppelin/contracts": "4.7.0"
"@uniswap/v3-core": "1.0.0"
},
"devDependencies": {
"@nomicfoundation/hardhat-chai-matchers": "1.0.4",
"@nomiclabs/hardhat-ethers": "^2.2.2",
"@nomicfoundation/hardhat-foundry": "1.1.2",
"@nomiclabs/hardhat-ethers": "^2.2.2",
"@typechain/ethers-v5": "^4.0.0",
"@types/chai": "^4.2.6",
"@types/mocha": "^5.2.7",
Expand Down
6 changes: 4 additions & 2 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
solmate/=lib/solmate/
permit2/=lib/permit2/
forge-std/=lib/forge-std/src/
@openzeppelin/=node_modules/@openzeppelin
@uniswap=node_modules/@uniswap
@openzeppelin/contracts=node_modules/@openzeppelin/contracts
@uniswap/v3-core/=node_modules/@uniswap/v3-core/
@uniswap/v2-core/=node_modules/@uniswap/v2-core/
@uniswap/v3-periphery/=lib/v3-periphery/
4 changes: 3 additions & 1 deletion script/DeployUniversalRouter.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ abstract contract DeployUniversalRouter is Script {
v2Factory: mapUnsupported(params.v2Factory),
v3Factory: mapUnsupported(params.v3Factory),
pairInitCodeHash: params.pairInitCodeHash,
poolInitCodeHash: params.poolInitCodeHash
poolInitCodeHash: params.poolInitCodeHash,
v3NFTPositionManager: mapUnsupported(params.v3NFTPositionManager)
});

logParams();
Expand All @@ -54,6 +55,7 @@ abstract contract DeployUniversalRouter is Script {
console2.log('weth9:', params.weth9);
console2.log('v2Factory:', params.v2Factory);
console2.log('v3Factory:', params.v3Factory);
console2.log('v3NFTPositionManager:', params.v3NFTPositionManager);
}

function mapUnsupported(address protocol) internal view returns (address) {
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployArbitrum.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployArbitrum is DeployUniversalRouter {
v2Factory: 0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9,
v3Factory: 0x1F98431c8aD98523631AE4a59f267346ea31F984,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
});

unsupported = 0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployArbitrumGoerli.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployArbitrumGoerli is DeployUniversalRouter {
v2Factory: UNSUPPORTED_PROTOCOL,
v3Factory: 0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6,
pairInitCodeHash: BYTES32_ZERO,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: address(0)
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployAvalanche.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployAvalanche is DeployUniversalRouter {
v2Factory: 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C,
v3Factory: 0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0x655C406EBFa14EE2006250925e54ec43AD184f8B
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployBSC.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployBSC is DeployUniversalRouter {
v2Factory: 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6,
v3Factory: 0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployBase.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployBase is DeployUniversalRouter {
v2Factory: 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6,
v3Factory: 0x33128a8fC17869897dcE68Ed026d694621f6FDfD,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1
});

unsupported = 0x9E18Efb3BE848940b0C92D300504Fb08C287FE85;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployBaseGoerli.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployBaseGoerli is DeployUniversalRouter {
v2Factory: UNSUPPORTED_PROTOCOL,
v3Factory: 0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2,
pairInitCodeHash: BYTES32_ZERO,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: address(0)
});

unsupported = 0x7B46ee9BaB49bd5b37117494689A035b0F187B59;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployBlast.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployBlast is DeployUniversalRouter {
v2Factory: 0x5C346464d33F90bABaf70dB6388507CC889C1070,
v3Factory: 0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0xB218e4f7cF0533d4696fDfC419A0023D33345F28
});

unsupported = 0x5ab1B56FB16238dB874258FB7847EFe248eb8496;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployCelo.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployCelo is DeployUniversalRouter {
v2Factory: 0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f,
v3Factory: 0xAfE208a311B21f13EF87E33A90049fC17A7acDEc,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A
});

unsupported = 0x5Dc88340E1c5c6366864Ee415d6034cadd1A9897;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployCeloAlfajores.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployCeloAlfajores is DeployUniversalRouter {
v2Factory: UNSUPPORTED_PROTOCOL,
v3Factory: 0xAfE208a311B21f13EF87E33A90049fC17A7acDEc,
pairInitCodeHash: BYTES32_ZERO,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: address(0)
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployGoerli.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployGoerli is DeployUniversalRouter {
v2Factory: 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f,
v3Factory: 0x1F98431c8aD98523631AE4a59f267346ea31F984,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: address(0)
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployMainnet.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployMainnet is DeployUniversalRouter {
v2Factory: 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f,
v3Factory: 0x1F98431c8aD98523631AE4a59f267346ea31F984,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
});

unsupported = 0x76D631990d505E4e5b432EEDB852A60897824D68;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployOptimism.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployOptimism is DeployUniversalRouter {
v2Factory: 0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf,
v3Factory: 0x1F98431c8aD98523631AE4a59f267346ea31F984,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
});

unsupported = 0x40d51104Da22E3e77b683894E7e3E12e8FC61E65;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployOptimismGoerli.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployOptimismGoerli is DeployUniversalRouter {
v2Factory: UNSUPPORTED_PROTOCOL,
v3Factory: 0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10,
pairInitCodeHash: BYTES32_ZERO,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: address(0)
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployPolygon.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployPolygon is DeployUniversalRouter {
v2Factory: 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C,
v3Factory: 0x1F98431c8aD98523631AE4a59f267346ea31F984,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
});

unsupported = 0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeployPolygonMumbai.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeployPolygonMumbai is DeployUniversalRouter {
v2Factory: UNSUPPORTED_PROTOCOL,
v3Factory: 0x1F98431c8aD98523631AE4a59f267346ea31F984,
pairInitCodeHash: BYTES32_ZERO,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion script/deployParameters/DeploySepolia.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ contract DeploySepolia is DeployUniversalRouter {
v2Factory: 0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0,
v3Factory: 0x0227628f3F023bb0B980b67D528571c95c6DaC1c,
pairInitCodeHash: 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f,
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54
poolInitCodeHash: 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54,
v3NFTPositionManager: 0x1238536071E1c677A632429e3655c799b22cDA52
});

unsupported = 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B;
Expand Down
3 changes: 2 additions & 1 deletion test/foundry-tests/UniswapV2.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ abstract contract UniswapV2Test is Test {
v2Factory: address(FACTORY),
v3Factory: address(0),
pairInitCodeHash: bytes32(0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f),
poolInitCodeHash: bytes32(0)
poolInitCodeHash: bytes32(0),
v3NFTPositionManager: address(0)
});
router = new UniversalRouter(params);

Expand Down
3 changes: 2 additions & 1 deletion test/foundry-tests/UniversalRouter.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ contract UniversalRouterTest is Test {
v2Factory: address(0),
v3Factory: address(0),
pairInitCodeHash: bytes32(0),
poolInitCodeHash: bytes32(0)
poolInitCodeHash: bytes32(0),
v3NFTPositionManager: address(0)
});
router = new UniversalRouter(params);
testModule = new ExampleModule();
Expand Down
Loading
Loading