ERC7739Mock.sol 930 B

12345678910111213141516171819202122232425262728
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.20;
  3. import {ECDSA} from "../../../utils/cryptography/ECDSA.sol";
  4. import {EIP712} from "../../../utils/cryptography/EIP712.sol";
  5. import {ERC7739} from "../../../utils/cryptography/ERC7739.sol";
  6. import {AbstractSigner} from "../../../utils/cryptography/AbstractSigner.sol";
  7. contract ERC7739ECDSAMock is AbstractSigner, ERC7739 {
  8. address private _signer;
  9. constructor(address signerAddr) EIP712("ERC7739ECDSA", "1") {
  10. _signer = signerAddr;
  11. }
  12. function signer() public view virtual returns (address) {
  13. return _signer;
  14. }
  15. function _rawSignatureValidation(
  16. bytes32 hash,
  17. bytes calldata signature
  18. ) internal view virtual override returns (bool) {
  19. (address recovered, ECDSA.RecoverError err, ) = ECDSA.tryRecover(hash, signature);
  20. return signer() == recovered && err == ECDSA.RecoverError.NoError;
  21. }
  22. }