Verify message supports normalized and non-normalized recovery parameter.
This commit is contained in:
parent
a4e768e2b3
commit
43061c691b
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ethers-wallet",
|
||||
"version": "2.1.6",
|
||||
"version": "2.1.7",
|
||||
"description": "Wallet and signing library for Ethereum.",
|
||||
"bugs": {
|
||||
"url": "http://github.com/ethers-io/ethers.js/issues",
|
||||
|
@ -306,13 +306,16 @@ utils.defineProperty(Wallet, 'verifyMessage', function(message, signature) {
|
||||
signature = utils.hexlify(signature);
|
||||
if (signature.length != 132) { throw new Error('invalid signature'); }
|
||||
var digest = getHash(message);
|
||||
var recoveryParam = parseInt(signature.substring(130), 16) - 27;
|
||||
|
||||
var recoveryParam = parseInt(signature.substring(130), 16);
|
||||
if (recoveryParam >= 27) { recoveryParam -= 27; }
|
||||
if (recoveryParam < 0) { throw new Error('invalid signature'); }
|
||||
|
||||
return SigningKey.recover(
|
||||
digest,
|
||||
signature.substring(0, 66),
|
||||
'0x' + signature.substring(66, 130),
|
||||
parseInt(signature.substring(130), 16) - 27
|
||||
recoveryParam
|
||||
);
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user