Skip to content

Commit 8cc3454

Browse files
Update briefcase
Changes: A src/deployers/DeployerHelper.sol M src/deployers/permit2/Permit2Deployer.sol M src/deployers/swap-router-contracts/SwapRouter02Deployer.sol M src/deployers/universal-router/UniversalRouterDeployer.sol M src/deployers/util-contracts/FeeCollectorDeployer.sol M src/deployers/util-contracts/FeeOnTransferDetectorDeployer.sol M src/deployers/v2-core/UniswapV2FactoryDeployer.sol M src/deployers/v2-periphery/UniswapV2Router01Deployer.sol M src/deployers/v2-periphery/UniswapV2Router02Deployer.sol M src/deployers/v3-core/UniswapV3FactoryDeployer.sol M src/deployers/v3-periphery/NFTDescriptorDeployer.sol M src/deployers/v3-periphery/NonfungiblePositionManagerDeployer.sol M src/deployers/v3-periphery/NonfungibleTokenPositionDescriptorDeployer.sol M src/deployers/v3-periphery/QuoterV2Deployer.sol M src/deployers/v3-periphery/SwapRouterDeployer.sol M src/deployers/v3-periphery/TickLensDeployer.sol M src/deployers/v3-periphery/UniswapInterfaceMulticallDeployer.sol M src/deployers/v3-periphery/V3MigratorDeployer.sol M src/deployers/v4-core/PoolManagerDeployer.sol M src/deployers/v4-periphery/PositionDescriptorDeployer.sol M src/deployers/v4-periphery/PositionManagerDeployer.sol M src/deployers/v4-periphery/StateViewDeployer.sol M src/deployers/v4-periphery/V4QuoterDeployer.sol M src/deployers/view-quoter-v3/QuoterDeployer.sol M src/protocols/v4-core/interfaces/IHooks.sol M src/protocols/v4-core/interfaces/IPoolManager.sol M src/protocols/v4-core/libraries/Hooks.sol M src/protocols/v4-core/libraries/StateLibrary.sol A src/protocols/v4-core/types/PoolOperation.sol A src/protocols/v4-periphery/interfaces/IMsgSender.sol M src/protocols/v4-periphery/interfaces/IV4Quoter.sol M src/protocols/v4-periphery/utils/BaseHook.sol
1 parent a000d33 commit 8cc3454

32 files changed

+161
-149
lines changed

src/deployers/DeployerHelper.sol

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity >= 0.5.0;
3+
4+
library DeployerHelper {
5+
function create(bytes memory initcode) internal returns (address contractAddress) {
6+
assembly {
7+
contractAddress := create(0, add(initcode, 32), mload(initcode))
8+
if iszero(contractAddress) {
9+
let ptr := mload(0x40)
10+
let errorSize := returndatasize()
11+
returndatacopy(ptr, 0, errorSize)
12+
revert(ptr, errorSize)
13+
}
14+
}
15+
}
16+
17+
function create2(bytes memory initcode, bytes32 salt) internal returns (address contractAddress) {
18+
assembly {
19+
contractAddress := create2(0, add(initcode, 32), mload(initcode), salt)
20+
if iszero(contractAddress) {
21+
let ptr := mload(0x40)
22+
let errorSize := returndatasize()
23+
returndatacopy(ptr, 0, errorSize)
24+
revert(ptr, errorSize)
25+
}
26+
}
27+
}
28+
29+
function create2(bytes memory initcode) internal returns (address contractAddress) {
30+
return create2(initcode, hex'00');
31+
}
32+
}

src/deployers/permit2/Permit2Deployer.sol

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22
pragma solidity >= 0.8.0;
33

44
import {IPermit2} from '../../protocols/permit2/interfaces/IPermit2.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library Permit2Deployer {
78
function deploy() internal returns (IPermit2 permit2) {
89
bytes memory initcode_ = abi.encodePacked(initcode());
9-
address permit2Address;
10-
assembly {
11-
permit2Address := create(0, add(initcode_, 32), mload(initcode_))
12-
}
13-
permit2 = IPermit2(permit2Address);
10+
permit2 = IPermit2(DeployerHelper.create(initcode_));
1411
}
1512

1613
/**

src/deployers/swap-router-contracts/SwapRouter02Deployer.sol

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
pragma solidity >= 0.7.0;
33

44
import {ISwapRouter02} from '../../protocols/swap-router-contracts/interfaces/ISwapRouter02.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library SwapRouter02Deployer {
78
function deploy(address factoryV2, address factoryV3, address positionManager, address weth)
@@ -10,10 +11,7 @@ library SwapRouter02Deployer {
1011
{
1112
bytes memory args = abi.encode(factoryV2, factoryV3, positionManager, weth);
1213
bytes memory initcode_ = abi.encodePacked(initcode(), args);
13-
14-
assembly {
15-
router := create(0, add(initcode_, 32), mload(initcode_))
16-
}
14+
router = ISwapRouter02(DeployerHelper.create(initcode_));
1715
}
1816

1917
/**

src/deployers/universal-router/UniversalRouterDeployer.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ pragma solidity >= 0.8.0;
33

44
import {IUniversalRouter} from '../../protocols/universal-router/interfaces/IUniversalRouter.sol';
55
import {RouterParameters} from '../../protocols/universal-router/types/RouterParameters.sol';
6+
import {DeployerHelper} from '../DeployerHelper.sol';
67

78
library UniversalRouterDeployer {
89
function deploy(
@@ -28,9 +29,7 @@ library UniversalRouterDeployer {
2829
v4PositionManager: v4PositionManager
2930
});
3031
bytes memory initcode_ = abi.encodePacked(initcode(), abi.encode(params));
31-
assembly {
32-
router := create2(0, add(initcode_, 32), mload(initcode_), hex'00')
33-
}
32+
router = IUniversalRouter(DeployerHelper.create2(initcode_));
3433
}
3534

3635
/**

src/deployers/util-contracts/FeeCollectorDeployer.sol

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
pragma solidity >= 0.7.0;
33

44
import {IFeeCollector} from '../../protocols/util-contracts/interfaces/IFeeCollector.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library FeeCollectorDeployer {
78
function deploy(address owner, address universalRouter, address permit2, address feeToken)
@@ -10,10 +11,7 @@ library FeeCollectorDeployer {
1011
{
1112
bytes memory args = abi.encode(owner, universalRouter, permit2, feeToken);
1213
bytes memory initcode_ = abi.encodePacked(initcode(), args);
13-
14-
assembly {
15-
feeCollector := create(0, add(initcode_, 32), mload(initcode_))
16-
}
14+
feeCollector = IFeeCollector(DeployerHelper.create(initcode_));
1715
}
1816

1917
/**

src/deployers/util-contracts/FeeOnTransferDetectorDeployer.sol

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
// SPDX-License-Identifier: MIT
22
pragma solidity >= 0.7.0;
33

4+
import {DeployerHelper} from '../DeployerHelper.sol';
5+
46
library FeeOnTransferDetectorDeployer {
57
function deploy(address v2Factory) internal returns (address detector) {
68
bytes memory args = abi.encode(v2Factory);
79
bytes memory initcode_ = abi.encodePacked(initcode(), args);
8-
9-
assembly {
10-
detector := create(0, add(initcode_, 32), mload(initcode_))
11-
}
10+
detector = DeployerHelper.create(initcode_);
1211
}
1312

1413
/**

src/deployers/v2-core/UniswapV2FactoryDeployer.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
pragma solidity >= 0.5.0;
33

44
import {IUniswapV2Factory} from '../../protocols/v2-core/interfaces/IUniswapV2Factory.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library UniswapV2FactoryDeployer {
78
function deploy(address feeToSetter) internal returns (IUniswapV2Factory factory) {
89
bytes memory args = abi.encode(feeToSetter);
910
bytes memory initcode_ = abi.encodePacked(legacyInitcode(), args);
10-
assembly {
11-
factory := create(0, add(initcode_, 32), mload(initcode_))
12-
}
11+
factory = IUniswapV2Factory(DeployerHelper.create(initcode_));
1312
}
1413

1514
/// @dev this is the init code of the previously deployed v2 factory instances with a different metadata hash. Using this version ensures the correct pool init code hash

src/deployers/v2-periphery/UniswapV2Router01Deployer.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
pragma solidity >= 0.5.0;
33

44
import {IUniswapV2Router01} from '../../protocols/v2-periphery/interfaces/IUniswapV2Router01.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library UniswapV2Router02Deployer {
78
function deploy(address factory, address weth) internal returns (IUniswapV2Router01 router01) {
89
bytes memory args = abi.encode(factory, weth);
910
bytes memory initcode_ = abi.encodePacked(initcode(), args);
10-
assembly {
11-
router01 := create(0, add(initcode_, 32), mload(initcode_))
12-
}
11+
router01 = IUniswapV2Router01(DeployerHelper.create(initcode_));
1312
}
1413

1514
/**

src/deployers/v2-periphery/UniswapV2Router02Deployer.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
pragma solidity >= 0.5.0;
33

44
import {IUniswapV2Router02} from '../../protocols/v2-periphery/interfaces/IUniswapV2Router02.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library UniswapV2Router02Deployer {
78
function deploy(address factory, address weth) internal returns (IUniswapV2Router02 router02) {
89
bytes memory args = abi.encode(factory, weth);
910
bytes memory initcode_ = abi.encodePacked(initcode(), args);
10-
assembly {
11-
router02 := create(0, add(initcode_, 32), mload(initcode_))
12-
}
11+
router02 = IUniswapV2Router02(DeployerHelper.create(initcode_));
1312
}
1413

1514
/**

src/deployers/v3-core/UniswapV3FactoryDeployer.sol

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22
pragma solidity >= 0.7.0;
33

44
import {IUniswapV3Factory} from '../../protocols/v3-core/interfaces/IUniswapV3Factory.sol';
5+
import {DeployerHelper} from '../DeployerHelper.sol';
56

67
library UniswapV3FactoryDeployer {
78
function deploy() internal returns (IUniswapV3Factory factory) {
89
bytes memory initcode_ = abi.encodePacked(initcode());
9-
assembly {
10-
factory := create(0, add(initcode_, 32), mload(initcode_))
11-
}
10+
factory = IUniswapV3Factory(DeployerHelper.create(initcode_));
1211
}
1312

1413
/**

0 commit comments

Comments
 (0)