29 lines
764 B
Solidity
29 lines
764 B
Solidity
|
// SPDX-License-Identifier: UNLICENSED
|
||
|
pragma solidity =0.7.6;
|
||
|
|
||
|
import '../interfaces/external/IERC1271.sol';
|
||
|
|
||
|
contract TestPositionNFTOwner is IERC1271 {
|
||
|
address public owner;
|
||
|
|
||
|
function setOwner(address _owner) external {
|
||
|
owner = _owner;
|
||
|
}
|
||
|
|
||
|
function isValidSignature(bytes32 hash, bytes memory signature) external view override returns (bytes4 magicValue) {
|
||
|
bytes32 r;
|
||
|
bytes32 s;
|
||
|
uint8 v;
|
||
|
assembly {
|
||
|
r := mload(add(signature, 0x20))
|
||
|
s := mload(add(signature, 0x40))
|
||
|
v := byte(0, mload(add(signature, 0x60)))
|
||
|
}
|
||
|
if (ecrecover(hash, v, r, s) == owner) {
|
||
|
return bytes4(0x1626ba7e);
|
||
|
} else {
|
||
|
return bytes4(0);
|
||
|
}
|
||
|
}
|
||
|
}
|