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 {
|
||||
return address.(common.Address), nil
|
||||
}
|
||||
// Retrieve the signature from the header extra-data
|
||||
if len(header.Validator) < extraSeal {
|
||||
// Retrieve the signature from the header.Validator
|
||||
// len equals 65 bytes
|
||||
if len(header.Validator) != extraSeal {
|
||||
return common.Address{}, consensus.ErrMissingValidatorSignature
|
||||
}
|
||||
signature := header.Validator[len(header.Validator)-extraSeal:]
|
||||
|
||||
// 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 {
|
||||
return common.Address{}, err
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue