Clones.t.sol 643 B

123456789101112131415161718
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {Test} from "forge-std/Test.sol";
  4. import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
  5. contract ClonesTest is Test {
  6. function testSymbolicPredictDeterministicAddressSpillage(address implementation, bytes32 salt) public {
  7. address predicted = Clones.predictDeterministicAddress(implementation, salt);
  8. bytes32 spillage;
  9. /// @solidity memory-safe-assembly
  10. assembly {
  11. spillage := and(predicted, 0xffffffffffffffffffffffff0000000000000000000000000000000000000000)
  12. }
  13. assertEq(spillage, bytes32(0));
  14. }
  15. }