code: func UnmarshalValidatorData(data interface{}) (ValidatorData, error) {
  	raw, ok := data.(map[string]interface{})
  	if !ok {
  		return ValidatorData{}, errors.New("validator input is not a map[string]interface{}")
  	}
  	addr, ok := raw["address"].(string)
  	if !ok {
  		return ValidatorData{}, errors.New("validator address is not sent as a string")
  	}
  	addrBytes, err := hexutil.Decode(addr)
  	if err != nil {
  		return ValidatorData{}, err
  	}
  	if !ok || len(addrBytes) == 0 {
  		return ValidatorData{}, errors.New("validator address is undefined")
  	}
  
  	message, ok := raw["message"].(string)
  	if !ok {
  		return ValidatorData{}, errors.New("message is not sent as a string")
  	}
  	messageBytes, err := hexutil.Decode(message)
  	if err != nil {
  		return ValidatorData{}, err
  	}
  	if !ok || len(messageBytes) == 0 {
  		return ValidatorData{}, errors.New("message is undefined")
  	}
  
  	return ValidatorData{
  		Address: common.BytesToAddress(addrBytes),
  		Message: messageBytes,
  	}, nil
  }
docs: // UnmarshalValidatorData converts the bytes input to typed data