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