code: func (m Message) MarshalJSON() ([]byte, error) {
  	type Message struct {
  		Sig       hexutil.Bytes `json:"sig,omitempty"`
  		TTL       uint32        `json:"ttl"`
  		Timestamp uint32        `json:"timestamp"`
  		Topic     TopicType     `json:"topic"`
  		Payload   hexutil.Bytes `json:"payload"`
  		Padding   hexutil.Bytes `json:"padding"`
  		PoW       float64       `json:"pow"`
  		Hash      hexutil.Bytes `json:"hash"`
  		Dst       hexutil.Bytes `json:"recipientPublicKey,omitempty"`
  	}
  	var enc Message
  	enc.Sig = m.Sig
  	enc.TTL = m.TTL
  	enc.Timestamp = m.Timestamp
  	enc.Topic = m.Topic
  	enc.Payload = m.Payload
  	enc.Padding = m.Padding
  	enc.PoW = m.PoW
  	enc.Hash = m.Hash
  	enc.Dst = m.Dst
  	return json.Marshal(&enc)
  }
docs: // MarshalJSON marshals type Message to a json string