Create2.t.sol 618 B

1234567891011121314151617
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {Test} from "forge-std/Test.sol";
  4. import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
  5. contract Create2Test is Test {
  6. function testSymbolicComputeAddressSpillage(bytes32 salt, bytes32 bytecodeHash, address deployer) public {
  7. address predicted = Create2.computeAddress(salt, bytecodeHash, deployer);
  8. bytes32 spillage;
  9. assembly ("memory-safe") {
  10. spillage := and(predicted, 0xffffffffffffffffffffffff0000000000000000000000000000000000000000)
  11. }
  12. assertEq(spillage, bytes32(0));
  13. }
  14. }