github.com/beyonderyue/gochain@v2.2.26+incompatible/core/types/gen_header_json.go (about) 1 // Code generated by github.com/fjl/gencodec. DO NOT EDIT. 2 3 package types 4 5 import ( 6 "encoding/json" 7 "errors" 8 "math/big" 9 10 "github.com/gochain-io/gochain/common" 11 "github.com/gochain-io/gochain/common/hexutil" 12 ) 13 14 var _ = (*headerMarshaling)(nil) 15 16 // MarshalJSON marshals as JSON. 17 func (h Header) MarshalJSON() ([]byte, error) { 18 type Header struct { 19 ParentHash common.Hash `json:"parentHash" gencodec:"required"` 20 UncleHash common.Hash `json:"sha3Uncles" gencodec:"required"` 21 Coinbase common.Address `json:"miner" gencodec:"required"` 22 Signers []common.Address `json:"signers" gencodec:"required"` 23 Voters []common.Address `json:"voters" gencodec:"required"` 24 Signer hexutil.Bytes `json:"signer" gencodec:"required"` 25 Root common.Hash `json:"stateRoot" gencodec:"required"` 26 TxHash common.Hash `json:"transactionsRoot" gencodec:"required"` 27 ReceiptHash common.Hash `json:"receiptsRoot" gencodec:"required"` 28 Bloom Bloom `json:"logsBloom" gencodec:"required"` 29 Difficulty *hexutil.Big `json:"difficulty" gencodec:"required"` 30 Number *hexutil.Big `json:"number" gencodec:"required"` 31 GasLimit hexutil.Uint64 `json:"gasLimit" gencodec:"required"` 32 GasUsed hexutil.Uint64 `json:"gasUsed" gencodec:"required"` 33 Time *hexutil.Big `json:"timestamp" gencodec:"required"` 34 Extra hexutil.Bytes `json:"extraData" gencodec:"required"` 35 MixDigest common.Hash `json:"mixHash" gencodec:"required"` 36 Nonce BlockNonce `json:"nonce" gencodec:"required"` 37 Hash common.Hash `json:"hash"` 38 } 39 var enc Header 40 enc.ParentHash = h.ParentHash 41 enc.UncleHash = h.UncleHash 42 enc.Coinbase = h.Coinbase 43 enc.Signers = h.Signers 44 enc.Voters = h.Voters 45 enc.Signer = h.Signer 46 enc.Root = h.Root 47 enc.TxHash = h.TxHash 48 enc.ReceiptHash = h.ReceiptHash 49 enc.Bloom = h.Bloom 50 enc.Difficulty = (*hexutil.Big)(h.Difficulty) 51 enc.Number = (*hexutil.Big)(h.Number) 52 enc.GasLimit = hexutil.Uint64(h.GasLimit) 53 enc.GasUsed = hexutil.Uint64(h.GasUsed) 54 enc.Time = (*hexutil.Big)(h.Time) 55 enc.Extra = h.Extra 56 enc.MixDigest = h.MixDigest 57 enc.Nonce = h.Nonce 58 enc.Hash = h.Hash() 59 return json.Marshal(&enc) 60 } 61 62 // UnmarshalJSON unmarshals from JSON. 63 func (h *Header) UnmarshalJSON(input []byte) error { 64 type Header struct { 65 ParentHash *common.Hash `json:"parentHash" gencodec:"required"` 66 UncleHash *common.Hash `json:"sha3Uncles" gencodec:"required"` 67 Coinbase *common.Address `json:"miner" gencodec:"required"` 68 Signers []common.Address `json:"signers" gencodec:"required"` 69 Voters []common.Address `json:"voters" gencodec:"required"` 70 Signer *hexutil.Bytes `json:"signer" gencodec:"required"` 71 Root *common.Hash `json:"stateRoot" gencodec:"required"` 72 TxHash *common.Hash `json:"transactionsRoot" gencodec:"required"` 73 ReceiptHash *common.Hash `json:"receiptsRoot" gencodec:"required"` 74 Bloom *Bloom `json:"logsBloom" gencodec:"required"` 75 Difficulty *hexutil.Big `json:"difficulty" gencodec:"required"` 76 Number *hexutil.Big `json:"number" gencodec:"required"` 77 GasLimit *hexutil.Uint64 `json:"gasLimit" gencodec:"required"` 78 GasUsed *hexutil.Uint64 `json:"gasUsed" gencodec:"required"` 79 Time *hexutil.Big `json:"timestamp" gencodec:"required"` 80 Extra *hexutil.Bytes `json:"extraData" gencodec:"required"` 81 MixDigest *common.Hash `json:"mixHash" gencodec:"required"` 82 Nonce *BlockNonce `json:"nonce" gencodec:"required"` 83 } 84 var dec Header 85 if err := json.Unmarshal(input, &dec); err != nil { 86 return err 87 } 88 if dec.ParentHash == nil { 89 return errors.New("missing required field 'parentHash' for Header") 90 } 91 h.ParentHash = *dec.ParentHash 92 if dec.UncleHash == nil { 93 return errors.New("missing required field 'sha3Uncles' for Header") 94 } 95 h.UncleHash = *dec.UncleHash 96 if dec.Coinbase == nil { 97 return errors.New("missing required field 'miner' for Header") 98 } 99 h.Coinbase = *dec.Coinbase 100 if dec.Signers == nil { 101 return errors.New("missing required field 'signers' for Header") 102 } 103 h.Signers = dec.Signers 104 if dec.Voters == nil { 105 return errors.New("missing required field 'voters' for Header") 106 } 107 h.Voters = dec.Voters 108 if dec.Signer == nil { 109 return errors.New("missing required field 'signer' for Header") 110 } 111 h.Signer = *dec.Signer 112 if dec.Root == nil { 113 return errors.New("missing required field 'stateRoot' for Header") 114 } 115 h.Root = *dec.Root 116 if dec.TxHash == nil { 117 return errors.New("missing required field 'transactionsRoot' for Header") 118 } 119 h.TxHash = *dec.TxHash 120 if dec.ReceiptHash == nil { 121 return errors.New("missing required field 'receiptsRoot' for Header") 122 } 123 h.ReceiptHash = *dec.ReceiptHash 124 if dec.Bloom == nil { 125 return errors.New("missing required field 'logsBloom' for Header") 126 } 127 h.Bloom = *dec.Bloom 128 if dec.Difficulty == nil { 129 return errors.New("missing required field 'difficulty' for Header") 130 } 131 h.Difficulty = (*big.Int)(dec.Difficulty) 132 if dec.Number == nil { 133 return errors.New("missing required field 'number' for Header") 134 } 135 h.Number = (*big.Int)(dec.Number) 136 if dec.GasLimit == nil { 137 return errors.New("missing required field 'gasLimit' for Header") 138 } 139 h.GasLimit = uint64(*dec.GasLimit) 140 if dec.GasUsed == nil { 141 return errors.New("missing required field 'gasUsed' for Header") 142 } 143 h.GasUsed = uint64(*dec.GasUsed) 144 if dec.Time == nil { 145 return errors.New("missing required field 'timestamp' for Header") 146 } 147 h.Time = (*big.Int)(dec.Time) 148 if dec.Extra == nil { 149 return errors.New("missing required field 'extraData' for Header") 150 } 151 h.Extra = *dec.Extra 152 if dec.MixDigest == nil { 153 return errors.New("missing required field 'mixHash' for Header") 154 } 155 h.MixDigest = *dec.MixDigest 156 if dec.Nonce == nil { 157 return errors.New("missing required field 'nonce' for Header") 158 } 159 h.Nonce = *dec.Nonce 160 return nil 161 }