Skip to content

Instantly share code, notes, and snippets.

@YoshihitoAso
Created September 7, 2017 09:57
Show Gist options
  • Save YoshihitoAso/5455845330b84b98564971de84b050d5 to your computer and use it in GitHub Desktop.
Save YoshihitoAso/5455845330b84b98564971de84b050d5 to your computer and use it in GitHub Desktop.
Solidity Sample ECVerify
pragma solidity ^0.4.8;
contract ECVerify {
event VerifyResult(bool ret, address indexed addr, address indexed recoverAddress);
function verify(bytes32 hash, uint8 v, bytes32 r, bytes32 s, address signer) returns(bool) {
bytes memory prefix = "\x19Ethereum Signed Message:\n32";
bytes32 prefixedHash = sha3(prefix, hash);
bool ret = false;
address recoverAddress = ecrecover(prefixedHash, v, r, s);
if (recoverAddress == signer)
ret = true;
VerifyResult(ret, signer, recoverAddress);
return ret;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment