code: func (c Criteria) MarshalJSON() ([]byte, error) {
  	type Criteria struct {
  		SymKeyID     string        `json:"symKeyID"`
  		PrivateKeyID string        `json:"privateKeyID"`
  		Sig          hexutil.Bytes `json:"sig"`
  		MinPow       float64       `json:"minPow"`
  		Topics       []TopicType   `json:"topics"`
  		AllowP2P     bool          `json:"allowP2P"`
  	}
  	var enc Criteria
  	enc.SymKeyID = c.SymKeyID
  	enc.PrivateKeyID = c.PrivateKeyID
  	enc.Sig = c.Sig
  	enc.MinPow = c.MinPow
  	enc.Topics = c.Topics
  	enc.AllowP2P = c.AllowP2P
  	return json.Marshal(&enc)
  }
docs: // MarshalJSON marshals type Criteria to a json string