// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * @dev Abstract contract for signature validation. * * Developers must implement {_rawSignatureValidation} and use it as the lowest-level signature validation mechanism. * * @custom:stateless */ abstract contract AbstractSigner { /** * @dev Signature validation algorithm. * * WARNING: Implementing a signature validation algorithm is a security-sensitive operation as it involves * cryptographic verification. It is important to review and test thoroughly before deployment. Consider * using one of the signature verification libraries (xref:api:utils/cryptography#ECDSA[ECDSA], * xref:api:utils/cryptography#P256[P256] or xref:api:utils/cryptography#RSA[RSA]). */ function _rawSignatureValidation(bytes32 hash, bytes calldata signature) internal view virtual returns (bool); }