|
@@ -0,0 +1,18 @@
|
|
|
+// SPDX-License-Identifier: MIT
|
|
|
+
|
|
|
+pragma solidity ^0.8.20;
|
|
|
+
|
|
|
+import {Test} from "forge-std/Test.sol";
|
|
|
+import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
|
|
+
|
|
|
+contract Create2Test is Test {
|
|
|
+ function testComputeAddressSpillage(bytes32 salt, bytes32 bytecodeHash, address deployer) public {
|
|
|
+ address predicted = Create2.computeAddress(salt, bytecodeHash, deployer);
|
|
|
+ bytes32 spillage;
|
|
|
+ /// @solidity memory-safe-assembly
|
|
|
+ assembly {
|
|
|
+ spillage := and(predicted, 0xffffffffffffffffffffffff0000000000000000000000000000000000000000)
|
|
|
+ }
|
|
|
+ assertEq(spillage, bytes32(0));
|
|
|
+ }
|
|
|
+}
|