code: 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)
  }
docs: // MarshalJSON marshals type NewMessage to a json string