Kaynağa Gözat

Add function documentation for SignatureChecker.

(cherry picked from commit f55d2716a8fa67a30e191bac78d7531ebfae838d)
Francisco Giordano 3 yıl önce
ebeveyn
işleme
7713757609

+ 10 - 6
contracts/utils/cryptography/SignatureChecker.sol

@@ -8,16 +8,20 @@ import "../Address.sol";
 import "../../interfaces/IERC1271.sol";
 
 /**
- * @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and
- * ERC1271 contract signatures. Using this instead of ECDSA.recover in your contract will make them compatible with
- * smart contract wallets such as Argent and Gnosis.
- *
- * Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change
- * through time. It could return true at block N and false at block N+1 (or the opposite).
+ * @dev Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA
+ * signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like
+ * Argent and Gnosis Safe.
  *
  * _Available since v4.1._
  */
 library SignatureChecker {
+    /**
+     * @dev Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the
+     * signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.
+     *
+     * NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus
+     * change through time. It could return true at block N and false at block N+1 (or the opposite).
+     */
     function isValidSignatureNow(
         address signer,
         bytes32 hash,