core/types: expose sigHash as Hash for SetCodeAuthorization (#32298)

This commit is contained in:
Daniel Katzan 2025-07-31 08:34:17 +07:00 committed by GitHub
parent d14d4d2af0
commit 2d95ba7d15
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -89,7 +89,7 @@ type authorizationMarshaling struct {
// SignSetCode creates a signed the SetCode authorization. // SignSetCode creates a signed the SetCode authorization.
func SignSetCode(prv *ecdsa.PrivateKey, auth SetCodeAuthorization) (SetCodeAuthorization, error) { func SignSetCode(prv *ecdsa.PrivateKey, auth SetCodeAuthorization) (SetCodeAuthorization, error) {
sighash := auth.sigHash() sighash := auth.SigHash()
sig, err := crypto.Sign(sighash[:], prv) sig, err := crypto.Sign(sighash[:], prv)
if err != nil { if err != nil {
return SetCodeAuthorization{}, err return SetCodeAuthorization{}, err
@ -105,7 +105,8 @@ func SignSetCode(prv *ecdsa.PrivateKey, auth SetCodeAuthorization) (SetCodeAutho
}, nil }, nil
} }
func (a *SetCodeAuthorization) sigHash() common.Hash { // SigHash returns the hash of SetCodeAuthorization for signing.
func (a *SetCodeAuthorization) SigHash() common.Hash {
return prefixedRlpHash(0x05, []any{ return prefixedRlpHash(0x05, []any{
a.ChainID, a.ChainID,
a.Address, a.Address,
@ -115,7 +116,7 @@ func (a *SetCodeAuthorization) sigHash() common.Hash {
// Authority recovers the the authorizing account of an authorization. // Authority recovers the the authorizing account of an authorization.
func (a *SetCodeAuthorization) Authority() (common.Address, error) { func (a *SetCodeAuthorization) Authority() (common.Address, error) {
sighash := a.sigHash() sighash := a.SigHash()
if !crypto.ValidateSignatureValues(a.V, a.R.ToBig(), a.S.ToBig(), true) { if !crypto.ValidateSignatureValues(a.V, a.R.ToBig(), a.S.ToBig(), true) {
return common.Address{}, ErrInvalidSig return common.Address{}, ErrInvalidSig
} }