Skip to content

Commit 5da98d4

Browse files
committed
feat: create2 deterministic deploys
1 parent ade4b8f commit 5da98d4

File tree

6 files changed

+18
-13
lines changed

6 files changed

+18
-13
lines changed

packages/libs/contracts-sdk/foundry.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ src = "src"
33
out = "out"
44
libs = ["node_modules", "lib"]
55
solc_version = "0.8.29"
6+
evm_version = "prague"
7+
bytecode_hash = "none"
8+
cbor_metadata = false
69

710
remappings = ["forge-std/=lib/forge-std/src/", "@aave-dao/aave-v3-origin/=node_modules/@aave-dao/aave-v3-origin/"]
811
via_ir = true

packages/libs/contracts-sdk/script/DeployFeeDiamond.sol

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ contract DeployFeeDiamond is Script {
5454
* @notice Deploy to a specific network
5555
* @param network Network name for logging
5656
*/
57-
function deployToNetwork(string memory network) public returns (address) {
57+
function deployToNetwork(string memory network, bytes32 create2Salt) public returns (address) {
5858
// Get private key from environment variable
5959
uint256 deployerPrivateKey = vm.envUint("VINCENT_DEPLOYER_PRIVATE_KEY");
6060
if (deployerPrivateKey == 0) {
@@ -71,23 +71,25 @@ contract DeployFeeDiamond is Script {
7171
IDiamondCut.FacetCut[] memory cuts = new IDiamondCut.FacetCut[](6);
7272

7373
// core diamond lib facets
74-
DiamondLoupeFacet diamondLoupeFacet = new DiamondLoupeFacet();
74+
DiamondLoupeFacet diamondLoupeFacet = new DiamondLoupeFacet{salt: create2Salt}();
7575
cuts[0] = contractToFacetCutAdd("DiamondLoupeFacet", address(diamondLoupeFacet));
76-
OwnershipFacet ownershipFacet = new OwnershipFacet();
76+
OwnershipFacet ownershipFacet = new OwnershipFacet{salt: create2Salt}();
7777
cuts[1] = contractToFacetCutAdd("OwnershipFacet", address(ownershipFacet));
7878

7979
// fee facets
80-
FeeViewsFacet feeViewsFacet = new FeeViewsFacet();
80+
FeeViewsFacet feeViewsFacet = new FeeViewsFacet{salt: create2Salt}();
8181
cuts[2] = contractToFacetCutAdd("FeeViewsFacet", address(feeViewsFacet));
82-
FeeAdminFacet feeAdminFacet = new FeeAdminFacet();
82+
FeeAdminFacet feeAdminFacet = new FeeAdminFacet{salt: create2Salt}();
8383
cuts[3] = contractToFacetCutAdd("FeeAdminFacet", address(feeAdminFacet));
84-
MorphoPerfFeeFacet morphoPerfFeeFacet = new MorphoPerfFeeFacet();
84+
MorphoPerfFeeFacet morphoPerfFeeFacet = new MorphoPerfFeeFacet{salt: create2Salt}();
8585
cuts[4] = contractToFacetCutAdd("MorphoPerfFeeFacet", address(morphoPerfFeeFacet));
86-
AavePerfFeeFacet aavePerfFeeFacet = new AavePerfFeeFacet();
86+
AavePerfFeeFacet aavePerfFeeFacet = new AavePerfFeeFacet{salt: create2Salt}();
8787
cuts[5] = contractToFacetCutAdd("AavePerfFeeFacet", address(aavePerfFeeFacet));
8888

8989
// Deploy the Diamond with the diamondCut facet and all other facets in one transaction
90-
Fee diamond = new Fee(cuts, FeeArgs({owner: deployerAddress, init: address(0), initCalldata: bytes("")}));
90+
Fee diamond = new Fee{
91+
salt: create2Salt
92+
}(cuts, FeeArgs({owner: deployerAddress, init: address(0), initCalldata: bytes("")}));
9193

9294
// Stop broadcasting transactions
9395
vm.stopBroadcast();
@@ -108,7 +110,7 @@ contract DeployFeeDiamond is Script {
108110
* @notice Deploy to Datil network
109111
*/
110112
function deployToDatil() public returns (address) {
111-
return deployToNetwork("Datil");
113+
return deployToNetwork("Datil", keccak256("DatilSalt"));
112114
}
113115

114116
/**

packages/libs/contracts-sdk/test/fees/AaveFeeForkTest.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ contract FeeForkTest is Test {
4646

4747
DeployFeeDiamond deployScript = new DeployFeeDiamond();
4848

49-
address diamondAddress = deployScript.deployToNetwork("test");
49+
address diamondAddress = deployScript.deployToNetwork("test", keccak256("testSalt"));
5050
feeDiamond = Fee(payable(diamondAddress));
5151

5252
feeViewsFacet = FeeViewsFacet(diamondAddress);

packages/libs/contracts-sdk/test/fees/Fee.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ contract FeeTest is Test {
3737

3838
DeployFeeDiamond deployScript = new DeployFeeDiamond();
3939

40-
address diamondAddress = deployScript.deployToNetwork("test");
40+
address diamondAddress = deployScript.deployToNetwork("test", keccak256("testSalt"));
4141
feeDiamond = Fee(payable(diamondAddress));
4242

4343
feeViewsFacet = FeeViewsFacet(diamondAddress);

packages/libs/contracts-sdk/test/fees/MorphoFee.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ contract FeeTest is Test {
3737

3838
DeployFeeDiamond deployScript = new DeployFeeDiamond();
3939

40-
address diamondAddress = deployScript.deployToNetwork("test");
40+
address diamondAddress = deployScript.deployToNetwork("test", keccak256("testSalt"));
4141
feeDiamond = Fee(payable(diamondAddress));
4242

4343
feeViewsFacet = FeeViewsFacet(diamondAddress);

packages/libs/contracts-sdk/test/fees/MorphoFeeForkTest.t.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ contract FeeForkTest is Test {
4747

4848
DeployFeeDiamond deployScript = new DeployFeeDiamond();
4949

50-
address diamondAddress = deployScript.deployToNetwork("test");
50+
address diamondAddress = deployScript.deployToNetwork("test", keccak256("testSalt"));
5151
feeDiamond = Fee(payable(diamondAddress));
5252

5353
feeViewsFacet = FeeViewsFacet(diamondAddress);

0 commit comments

Comments
 (0)