use openzeppelin ECDSA recover

This commit is contained in:
Andrea Franz 2020-09-30 12:30:16 +02:00
parent 7d6bd3bfc9
commit 6320527a8f
No known key found for this signature in database
GPG Key ID: 4F0D2F2D9DE7F29D
2 changed files with 4 additions and 19 deletions

View File

@ -1,6 +1,8 @@
pragma solidity ^0.6.1;
pragma experimental ABIEncoderV2;
import "@openzeppelin/contracts/cryptography/ECDSA.sol";
abstract contract Bucket {
bool initialized;
address payable public owner;
@ -122,31 +124,13 @@ abstract contract Bucket {
}
function recoverSigner(bytes32 _domainSeparator, Redeem memory _redeem, bytes memory _sig) internal pure returns(address) {
require(_sig.length == 65, "bad signature length");
bytes32 r;
bytes32 s;
uint8 v;
assembly {
r := mload(add(_sig, 32))
s := mload(add(_sig, 64))
v := byte(0, mload(add(_sig, 96)))
}
if (v < 27) {
v += 27;
}
require(v == 27 || v == 28, "signature version doesn't match");
bytes32 digest = keccak256(abi.encodePacked(
"\x19\x01",
_domainSeparator,
hashRedeem(_redeem)
));
return ecrecover(digest, v, r, s);
return ECDSA.recover(digest, _sig);
}
function setRelayerURI(string calldata uri) external onlyOwner {

View File

@ -58,6 +58,7 @@ async function signRedeem(contractAddress, signer, message) {
if (error) {
return reject(error);
}
resolve(res.result);
});
});