ERC1271WalletMock.sol 834 B

123456789101112131415161718192021222324
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.19;
  3. import {Ownable} from "../access/Ownable.sol";
  4. import {IERC1271} from "../interfaces/IERC1271.sol";
  5. import {ECDSA} from "../utils/cryptography/ECDSA.sol";
  6. contract ERC1271WalletMock is Ownable, IERC1271 {
  7. constructor(address originalOwner) Ownable(originalOwner) {}
  8. function isValidSignature(bytes32 hash, bytes memory signature) public view returns (bytes4 magicValue) {
  9. return ECDSA.recover(hash, signature) == owner() ? this.isValidSignature.selector : bytes4(0);
  10. }
  11. }
  12. contract ERC1271MaliciousMock is IERC1271 {
  13. function isValidSignature(bytes32, bytes memory) public pure returns (bytes4) {
  14. assembly {
  15. mstore(0, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
  16. return(0, 32)
  17. }
  18. }
  19. }