github.com/linapex/ethereum-go-chinese@v0.0.0-20190316121929-f8b7a73c3fa1/whisper/whisperv6/gen_newmessage_json.go (about) 1 2 //<developer> 3 // <name>linapex 曹一峰</name> 4 // <email>linapex@163.com</email> 5 // <wx>superexc</wx> 6 // <qqgroup>128148617</qqgroup> 7 // <url>https://jsq.ink</url> 8 // <role>pku engineer</role> 9 // <date>2019-03-16 19:16:46</date> 10 //</624450125510479872> 11 12 //代码由github.com/fjl/gencodec生成。不要编辑。 13 14 package whisperv6 15 16 import ( 17 "encoding/json" 18 19 "github.com/ethereum/go-ethereum/common/hexutil" 20 ) 21 22 var _ = (*newMessageOverride)(nil) 23 24 //marshaljson将类型newmessage封送到json字符串 25 func (n NewMessage) MarshalJSON() ([]byte, error) { 26 type NewMessage struct { 27 SymKeyID string `json:"symKeyID"` 28 PublicKey hexutil.Bytes `json:"pubKey"` 29 Sig string `json:"sig"` 30 TTL uint32 `json:"ttl"` 31 Topic TopicType `json:"topic"` 32 Payload hexutil.Bytes `json:"payload"` 33 Padding hexutil.Bytes `json:"padding"` 34 PowTime uint32 `json:"powTime"` 35 PowTarget float64 `json:"powTarget"` 36 TargetPeer string `json:"targetPeer"` 37 } 38 var enc NewMessage 39 enc.SymKeyID = n.SymKeyID 40 enc.PublicKey = n.PublicKey 41 enc.Sig = n.Sig 42 enc.TTL = n.TTL 43 enc.Topic = n.Topic 44 enc.Payload = n.Payload 45 enc.Padding = n.Padding 46 enc.PowTime = n.PowTime 47 enc.PowTarget = n.PowTarget 48 enc.TargetPeer = n.TargetPeer 49 return json.Marshal(&enc) 50 } 51 52 //取消标记JSON将类型newmessage取消标记为JSON字符串 53 func (n *NewMessage) UnmarshalJSON(input []byte) error { 54 type NewMessage struct { 55 SymKeyID *string `json:"symKeyID"` 56 PublicKey *hexutil.Bytes `json:"pubKey"` 57 Sig *string `json:"sig"` 58 TTL *uint32 `json:"ttl"` 59 Topic *TopicType `json:"topic"` 60 Payload *hexutil.Bytes `json:"payload"` 61 Padding *hexutil.Bytes `json:"padding"` 62 PowTime *uint32 `json:"powTime"` 63 PowTarget *float64 `json:"powTarget"` 64 TargetPeer *string `json:"targetPeer"` 65 } 66 var dec NewMessage 67 if err := json.Unmarshal(input, &dec); err != nil { 68 return err 69 } 70 if dec.SymKeyID != nil { 71 n.SymKeyID = *dec.SymKeyID 72 } 73 if dec.PublicKey != nil { 74 n.PublicKey = *dec.PublicKey 75 } 76 if dec.Sig != nil { 77 n.Sig = *dec.Sig 78 } 79 if dec.TTL != nil { 80 n.TTL = *dec.TTL 81 } 82 if dec.Topic != nil { 83 n.Topic = *dec.Topic 84 } 85 if dec.Payload != nil { 86 n.Payload = *dec.Payload 87 } 88 if dec.Padding != nil { 89 n.Padding = *dec.Padding 90 } 91 if dec.PowTime != nil { 92 n.PowTime = *dec.PowTime 93 } 94 if dec.PowTarget != nil { 95 n.PowTarget = *dec.PowTarget 96 } 97 if dec.TargetPeer != nil { 98 n.TargetPeer = *dec.TargetPeer 99 } 100 return nil 101 } 102