github.com/klaytn/klaytn@v1.12.1/blockchain/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/klaytn/klaytn/common" 11 "github.com/klaytn/klaytn/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 Rewardbase common.Address `json:"reward" gencodec:"required"` 21 Root common.Hash `json:"stateRoot" gencodec:"required"` 22 TxHash common.Hash `json:"transactionsRoot" gencodec:"required"` 23 ReceiptHash common.Hash `json:"receiptsRoot" gencodec:"required"` 24 Bloom Bloom `json:"logsBloom" gencodec:"required"` 25 BlockScore *hexutil.Big `json:"blockScore" gencodec:"required"` 26 Number *hexutil.Big `json:"number" gencodec:"required"` 27 GasUsed hexutil.Uint64 `json:"gasUsed" gencodec:"required"` 28 Time *hexutil.Big `json:"timestamp" gencodec:"required"` 29 TimeFoS hexutil.Uint `json:"timestampFoS" gencodec:"required"` 30 Extra hexutil.Bytes `json:"extraData" gencodec:"required"` 31 Governance hexutil.Bytes `json:"governanceData" gencodec:"required"` 32 Vote hexutil.Bytes `json:"voteData,omitempty"` 33 BaseFee *hexutil.Big `json:"baseFeePerGas,omitempty" rlp:"optional"` 34 RandomReveal hexutil.Bytes `json:"randomReveal,omitempty" rlp:"optional"` 35 MixHash hexutil.Bytes `json:"mixHash,omitempty" rlp:"optional"` 36 Hash common.Hash `json:"hash"` 37 } 38 var enc Header 39 enc.ParentHash = h.ParentHash 40 enc.Rewardbase = h.Rewardbase 41 enc.Root = h.Root 42 enc.TxHash = h.TxHash 43 enc.ReceiptHash = h.ReceiptHash 44 enc.Bloom = h.Bloom 45 enc.BlockScore = (*hexutil.Big)(h.BlockScore) 46 enc.Number = (*hexutil.Big)(h.Number) 47 enc.GasUsed = hexutil.Uint64(h.GasUsed) 48 enc.Time = (*hexutil.Big)(h.Time) 49 enc.TimeFoS = hexutil.Uint(h.TimeFoS) 50 enc.Extra = h.Extra 51 enc.Governance = h.Governance 52 enc.Vote = h.Vote 53 enc.BaseFee = (*hexutil.Big)(h.BaseFee) 54 enc.RandomReveal = h.RandomReveal 55 enc.MixHash = h.MixHash 56 enc.Hash = h.Hash() 57 return json.Marshal(&enc) 58 } 59 60 // UnmarshalJSON unmarshals from JSON. 61 func (h *Header) UnmarshalJSON(input []byte) error { 62 type Header struct { 63 ParentHash *common.Hash `json:"parentHash" gencodec:"required"` 64 Rewardbase *common.Address `json:"reward" gencodec:"required"` 65 Root *common.Hash `json:"stateRoot" gencodec:"required"` 66 TxHash *common.Hash `json:"transactionsRoot" gencodec:"required"` 67 ReceiptHash *common.Hash `json:"receiptsRoot" gencodec:"required"` 68 Bloom *Bloom `json:"logsBloom" gencodec:"required"` 69 BlockScore *hexutil.Big `json:"blockScore" gencodec:"required"` 70 Number *hexutil.Big `json:"number" gencodec:"required"` 71 GasUsed *hexutil.Uint64 `json:"gasUsed" gencodec:"required"` 72 Time *hexutil.Big `json:"timestamp" gencodec:"required"` 73 TimeFoS *hexutil.Uint `json:"timestampFoS" gencodec:"required"` 74 Extra *hexutil.Bytes `json:"extraData" gencodec:"required"` 75 Governance *hexutil.Bytes `json:"governanceData" gencodec:"required"` 76 Vote *hexutil.Bytes `json:"voteData,omitempty"` 77 BaseFee *hexutil.Big `json:"baseFeePerGas,omitempty" rlp:"optional"` 78 RandomReveal *hexutil.Bytes `json:"randomReveal,omitempty" rlp:"optional"` 79 MixHash *hexutil.Bytes `json:"mixHash,omitempty" rlp:"optional"` 80 } 81 var dec Header 82 if err := json.Unmarshal(input, &dec); err != nil { 83 return err 84 } 85 if dec.ParentHash == nil { 86 return errors.New("missing required field 'parentHash' for Header") 87 } 88 h.ParentHash = *dec.ParentHash 89 if dec.Rewardbase == nil { 90 return errors.New("missing required field 'reward' for Header") 91 } 92 h.Rewardbase = *dec.Rewardbase 93 if dec.Root == nil { 94 return errors.New("missing required field 'stateRoot' for Header") 95 } 96 h.Root = *dec.Root 97 if dec.TxHash == nil { 98 return errors.New("missing required field 'transactionsRoot' for Header") 99 } 100 h.TxHash = *dec.TxHash 101 if dec.ReceiptHash == nil { 102 return errors.New("missing required field 'receiptsRoot' for Header") 103 } 104 h.ReceiptHash = *dec.ReceiptHash 105 if dec.Bloom == nil { 106 return errors.New("missing required field 'logsBloom' for Header") 107 } 108 h.Bloom = *dec.Bloom 109 if dec.BlockScore == nil { 110 return errors.New("missing required field 'blockScore' for Header") 111 } 112 h.BlockScore = (*big.Int)(dec.BlockScore) 113 if dec.Number == nil { 114 return errors.New("missing required field 'number' for Header") 115 } 116 h.Number = (*big.Int)(dec.Number) 117 if dec.GasUsed == nil { 118 return errors.New("missing required field 'gasUsed' for Header") 119 } 120 h.GasUsed = uint64(*dec.GasUsed) 121 if dec.Time == nil { 122 return errors.New("missing required field 'timestamp' for Header") 123 } 124 h.Time = (*big.Int)(dec.Time) 125 if dec.TimeFoS == nil { 126 return errors.New("missing required field 'timestampFoS' for Header") 127 } 128 h.TimeFoS = uint8(*dec.TimeFoS) 129 if dec.Extra == nil { 130 return errors.New("missing required field 'extraData' for Header") 131 } 132 h.Extra = *dec.Extra 133 if dec.Governance == nil { 134 return errors.New("missing required field 'governanceData' for Header") 135 } 136 h.Governance = *dec.Governance 137 if dec.Vote != nil { 138 h.Vote = *dec.Vote 139 } 140 if dec.BaseFee != nil { 141 h.BaseFee = (*big.Int)(dec.BaseFee) 142 } 143 if dec.RandomReveal != nil { 144 h.RandomReveal = *dec.RandomReveal 145 } 146 if dec.MixHash != nil { 147 h.MixHash = *dec.MixHash 148 } 149 return nil 150 }