From cfb46a6520488e295eac778a9fcb60cbfc7ec7ab Mon Sep 17 00:00:00 2001 From: "David E. Perez Negron R." Date: Fri, 6 Oct 2023 19:11:14 -0600 Subject: [PATCH] Testing Signature --- test/Sign.t.sol | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/Sign.t.sol diff --git a/test/Sign.t.sol b/test/Sign.t.sol new file mode 100644 index 0000000..0474c1f --- /dev/null +++ b/test/Sign.t.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import "forge-std/Test.sol"; + +contract signTest is Test { + // private key = 123 + // public key = vm.addr(private key) + // message = "secret message" + // message hash = keccak256(message) + // vm.sign(private key, message hash) + + function testSignature() public { + uint privateKey = 123; + address pubKey = vm.addr(privateKey); + + bytes32 messageHash = keccak256("secret message"); + + (uint8 v, bytes32 r, bytes32 s) = vm.sign(privateKey, messageHash); + + address signer = ecrecover(messageHash, v, r, s); + + assertEq(pubKey, signer); + + bytes32 invalidMessageHash = keccak256("invalid Message"); + + signer = ecrecover(invalidMessageHash, v, r, s); + + assertTrue(signer != pubKey); + } + +}