123456789101112131415161718 |
- package istanbulcommon
- import (
- "github.com/ethereum/go-ethereum/common"
- "github.com/ethereum/go-ethereum/crypto"
- )
- // GetSignatureAddress gets the signer address from the signature
- func GetSignatureAddress(data []byte, sig []byte) (common.Address, error) {
- // 1. Keccak data
- hashData := crypto.Keccak256(data)
- // 2. Recover public key
- pubkey, err := crypto.SigToPub(hashData, sig)
- if err != nil {
- return common.Address{}, err
- }
- return crypto.PubkeyToAddress(*pubkey), nil
- }
|