/
gen_header_json.go
118 lines (113 loc) · 4.15 KB
/
gen_header_json.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Code generated by github.com/fjl/gencodec. DO NOT EDIT.
package block
import (
"encoding/json"
"errors"
"bchain.io/common/types"
)
var _ = (*headerMarshaling)(nil)
func (h Header) MarshalJSON() ([]byte, error) {
type Header struct {
ParentHash types.Hash `json:"parentHash" gencodec:"required"`
StateRootHash types.Hash `json:"stateRoot" gencodec:"required"`
TxRootHash types.Hash `json:"transactionsRoot" gencodec:"required"`
ReceiptRootHash types.Hash `json:"receiptsRoot" gencodec:"required"`
Bloom types.Bloom `json:"logsBloom" gencodec:"required"`
Number *types.BigInt `json:"number" gencodec:"required"`
Time *types.BigInt `json:"timestamp" gencodec:"required"`
Cdata ConsensusData `json:"consensusData" gencodec:"required"`
Extra types.BytesForJson `json:"extraData" gencodec:"required"`
V *types.BigInt `json:"v"`
R *types.BigInt `json:"r"`
S *types.BigInt `json:"s"`
Producer types.Address `json:"blockProducer" gencodec:"required" msg:"-"`
Hash types.Hash `json:"hash"`
}
var enc Header
enc.ParentHash = h.ParentHash
enc.StateRootHash = h.StateRootHash
enc.TxRootHash = h.TxRootHash
enc.ReceiptRootHash = h.ReceiptRootHash
enc.Bloom = h.Bloom
enc.Number = h.Number
enc.Time = h.Time
enc.Cdata = h.Cdata
enc.Extra = h.Extra
enc.V = h.V
enc.R = h.R
enc.S = h.S
enc.Producer = h.Producer
enc.Hash = h.Hash()
return json.Marshal(&enc)
}
func (h *Header) UnmarshalJSON(input []byte) error {
type Header struct {
ParentHash *types.Hash `json:"parentHash" gencodec:"required"`
StateRootHash *types.Hash `json:"stateRoot" gencodec:"required"`
TxRootHash *types.Hash `json:"transactionsRoot" gencodec:"required"`
ReceiptRootHash *types.Hash `json:"receiptsRoot" gencodec:"required"`
Bloom *types.Bloom `json:"logsBloom" gencodec:"required"`
Number *types.BigInt `json:"number" gencodec:"required"`
Time *types.BigInt `json:"timestamp" gencodec:"required"`
Cdata *ConsensusData `json:"consensusData" gencodec:"required"`
Extra types.BytesForJson `json:"extraData" gencodec:"required"`
V *types.BigInt `json:"v"`
R *types.BigInt `json:"r"`
S *types.BigInt `json:"s"`
Producer *types.Address `json:"blockProducer" gencodec:"required" msg:"-"`
}
var dec Header
if err := json.Unmarshal(input, &dec); err != nil {
return err
}
if dec.ParentHash == nil {
return errors.New("missing required field 'parentHash' for Header")
}
h.ParentHash = *dec.ParentHash
if dec.StateRootHash == nil {
return errors.New("missing required field 'stateRoot' for Header")
}
h.StateRootHash = *dec.StateRootHash
if dec.TxRootHash == nil {
return errors.New("missing required field 'transactionsRoot' for Header")
}
h.TxRootHash = *dec.TxRootHash
if dec.ReceiptRootHash == nil {
return errors.New("missing required field 'receiptsRoot' for Header")
}
h.ReceiptRootHash = *dec.ReceiptRootHash
if dec.Bloom == nil {
return errors.New("missing required field 'logsBloom' for Header")
}
h.Bloom = *dec.Bloom
if dec.Number == nil {
return errors.New("missing required field 'number' for Header")
}
h.Number = dec.Number
if dec.Time == nil {
return errors.New("missing required field 'timestamp' for Header")
}
h.Time = dec.Time
if dec.Cdata == nil {
return errors.New("missing required field 'consensusData' for Header")
}
h.Cdata = *dec.Cdata
if dec.Extra == nil {
return errors.New("missing required field 'extraData' for Header")
}
h.Extra = dec.Extra
if dec.V != nil {
h.V = dec.V
}
if dec.R != nil {
h.R = dec.R
}
if dec.S != nil {
h.S = dec.S
}
if dec.Producer == nil {
return errors.New("missing required field 'blockProducer' for Header")
}
h.Producer = *dec.Producer
return nil
}