You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
831 B
Solidity
27 lines
831 B
Solidity
2 years ago
|
// SPDX-License-Identifier: MIT
|
||
|
|
||
|
pragma solidity ^0.8.0;
|
||
|
|
||
|
import "../access/Ownable.sol";
|
||
|
import "../interfaces/IERC1271.sol";
|
||
|
import "../utils/cryptography/ECDSA.sol";
|
||
|
|
||
|
contract ERC1271WalletMock is Ownable, IERC1271 {
|
||
|
constructor(address originalOwner) {
|
||
|
transferOwnership(originalOwner);
|
||
|
}
|
||
|
|
||
|
function isValidSignature(bytes32 hash, bytes memory signature) public view override returns (bytes4 magicValue) {
|
||
|
return ECDSA.recover(hash, signature) == owner() ? this.isValidSignature.selector : bytes4(0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
contract ERC1271MaliciousMock is IERC1271 {
|
||
|
function isValidSignature(bytes32, bytes memory) public pure override returns (bytes4) {
|
||
|
assembly {
|
||
|
mstore(0, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
|
||
|
return(0, 32)
|
||
|
}
|
||
|
}
|
||
|
}
|