mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 18:32:23 +00:00
Merge pull request #267 from nguyenbatam/make_clean_func_recover_validator
make clean func recover validator
This commit is contained in:
commit
69114cfe7d
1 changed files with 4 additions and 5 deletions
|
|
@ -960,14 +960,13 @@ func (c *Posv) RecoverValidator(header *types.Header) (common.Address, error) {
|
||||||
if address, known := c.validatorSignatures.Get(hash); known {
|
if address, known := c.validatorSignatures.Get(hash); known {
|
||||||
return address.(common.Address), nil
|
return address.(common.Address), nil
|
||||||
}
|
}
|
||||||
// Retrieve the signature from the header extra-data
|
// Retrieve the signature from the header.Validator
|
||||||
if len(header.Validator) < extraSeal {
|
// len equals 65 bytes
|
||||||
|
if len(header.Validator) != extraSeal {
|
||||||
return common.Address{}, consensus.ErrMissingValidatorSignature
|
return common.Address{}, consensus.ErrMissingValidatorSignature
|
||||||
}
|
}
|
||||||
signature := header.Validator[len(header.Validator)-extraSeal:]
|
|
||||||
|
|
||||||
// Recover the public key and the Ethereum address
|
// Recover the public key and the Ethereum address
|
||||||
pubkey, err := crypto.Ecrecover(sigHash(header).Bytes(), signature)
|
pubkey, err := crypto.Ecrecover(sigHash(header).Bytes(), header.Validator)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return common.Address{}, err
|
return common.Address{}, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue