package protobuf

import (
	"crypto/ecdsa"

	"github.com/status-im/status-go/eth-node/crypto"
)

func (m *ApplicationMetadataMessage) RecoverKey() (*ecdsa.PublicKey, error) {
	if m.Signature == nil {
		return nil, nil
	}

	recoveredKey, err := crypto.SigToPub(
		crypto.Keccak256(m.Payload),
		m.Signature,
	)
	if err != nil {
		return nil, err
	}

	return recoveredKey, nil
}