• Guillaume Ballet's avatar
    whisper: remove linter warnings (#15972) · 367c329b
    Guillaume Ballet authored
    * whisper: fixes warnings from the code linter
    
    * whisper: more non-API-breaking changes
    
    The remaining lint errors are because of auto-generated
    files and one is because an exported function has a non-
    exported return type. Changing this would break the API,
    and will be part of another commit for easier reversal.
    
    * whisper: un-export NewSentMessage to please the linter
    
    This is an API change, which is why it's in its own commit.
    This change was initiated after the linter complained that
    the returned type wasn't exported. I chose to un-export
    the function instead of exporting the type, because that
    type is an implementation detail that I would like to
    change in the near future to make the code more
    readable and with an increased coverage.
    
    * whisper: update gencodec output after upgrading it to new lint standards
    367c329b
gen_newmessage_json.go 2.25 KB
// Code generated by github.com/fjl/gencodec. DO NOT EDIT.

package whisperv6

import (
	"encoding/json"

	"github.com/ethereum/go-ethereum/common/hexutil"
)

var _ = (*newMessageOverride)(nil)

// MarshalJSON marshals type NewMessage to a json string
func (n NewMessage) MarshalJSON() ([]byte, error) {
	type NewMessage struct {
		SymKeyID   string        `json:"symKeyID"`
		PublicKey  hexutil.Bytes `json:"pubKey"`
		Sig        string        `json:"sig"`
		TTL        uint32        `json:"ttl"`
		Topic      TopicType     `json:"topic"`
		Payload    hexutil.Bytes `json:"payload"`
		Padding    hexutil.Bytes `json:"padding"`
		PowTime    uint32        `json:"powTime"`
		PowTarget  float64       `json:"powTarget"`
		TargetPeer string        `json:"targetPeer"`
	}
	var enc NewMessage
	enc.SymKeyID = n.SymKeyID
	enc.PublicKey = n.PublicKey
	enc.Sig = n.Sig
	enc.TTL = n.TTL
	enc.Topic = n.Topic
	enc.Payload = n.Payload
	enc.Padding = n.Padding
	enc.PowTime = n.PowTime
	enc.PowTarget = n.PowTarget
	enc.TargetPeer = n.TargetPeer
	return json.Marshal(&enc)
}

// UnmarshalJSON unmarshals type NewMessage to a json string
func (n *NewMessage) UnmarshalJSON(input []byte) error {
	type NewMessage struct {
		SymKeyID   *string        `json:"symKeyID"`
		PublicKey  *hexutil.Bytes `json:"pubKey"`
		Sig        *string        `json:"sig"`
		TTL        *uint32        `json:"ttl"`
		Topic      *TopicType     `json:"topic"`
		Payload    *hexutil.Bytes `json:"payload"`
		Padding    *hexutil.Bytes `json:"padding"`
		PowTime    *uint32        `json:"powTime"`
		PowTarget  *float64       `json:"powTarget"`
		TargetPeer *string        `json:"targetPeer"`
	}
	var dec NewMessage
	if err := json.Unmarshal(input, &dec); err != nil {
		return err
	}
	if dec.SymKeyID != nil {
		n.SymKeyID = *dec.SymKeyID
	}
	if dec.PublicKey != nil {
		n.PublicKey = *dec.PublicKey
	}
	if dec.Sig != nil {
		n.Sig = *dec.Sig
	}
	if dec.TTL != nil {
		n.TTL = *dec.TTL
	}
	if dec.Topic != nil {
		n.Topic = *dec.Topic
	}
	if dec.Payload != nil {
		n.Payload = *dec.Payload
	}
	if dec.Padding != nil {
		n.Padding = *dec.Padding
	}
	if dec.PowTime != nil {
		n.PowTime = *dec.PowTime
	}
	if dec.PowTarget != nil {
		n.PowTarget = *dec.PowTarget
	}
	if dec.TargetPeer != nil {
		n.TargetPeer = *dec.TargetPeer
	}
	return nil
}