gen_ed.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. // Code generated by github.com/fjl/gencodec. DO NOT EDIT.
  2. package beacon
  3. import (
  4. "encoding/json"
  5. "errors"
  6. "math/big"
  7. "github.com/ethereum/go-ethereum/common"
  8. "github.com/ethereum/go-ethereum/common/hexutil"
  9. )
  10. var _ = (*executableDataMarshaling)(nil)
  11. // MarshalJSON marshals as JSON.
  12. func (e ExecutableDataV1) MarshalJSON() ([]byte, error) {
  13. type ExecutableDataV1 struct {
  14. ParentHash common.Hash `json:"parentHash" gencodec:"required"`
  15. FeeRecipient common.Address `json:"feeRecipient" gencodec:"required"`
  16. StateRoot common.Hash `json:"stateRoot" gencodec:"required"`
  17. ReceiptsRoot common.Hash `json:"receiptsRoot" gencodec:"required"`
  18. LogsBloom hexutil.Bytes `json:"logsBloom" gencodec:"required"`
  19. Random common.Hash `json:"prevRandao" gencodec:"required"`
  20. Number hexutil.Uint64 `json:"blockNumber" gencodec:"required"`
  21. GasLimit hexutil.Uint64 `json:"gasLimit" gencodec:"required"`
  22. GasUsed hexutil.Uint64 `json:"gasUsed" gencodec:"required"`
  23. Timestamp hexutil.Uint64 `json:"timestamp" gencodec:"required"`
  24. ExtraData hexutil.Bytes `json:"extraData" gencodec:"required"`
  25. BaseFeePerGas *hexutil.Big `json:"baseFeePerGas" gencodec:"required"`
  26. BlockHash common.Hash `json:"blockHash" gencodec:"required"`
  27. Transactions []hexutil.Bytes `json:"transactions" gencodec:"required"`
  28. }
  29. var enc ExecutableDataV1
  30. enc.ParentHash = e.ParentHash
  31. enc.FeeRecipient = e.FeeRecipient
  32. enc.StateRoot = e.StateRoot
  33. enc.ReceiptsRoot = e.ReceiptsRoot
  34. enc.LogsBloom = e.LogsBloom
  35. enc.Random = e.Random
  36. enc.Number = hexutil.Uint64(e.Number)
  37. enc.GasLimit = hexutil.Uint64(e.GasLimit)
  38. enc.GasUsed = hexutil.Uint64(e.GasUsed)
  39. enc.Timestamp = hexutil.Uint64(e.Timestamp)
  40. enc.ExtraData = e.ExtraData
  41. enc.BaseFeePerGas = (*hexutil.Big)(e.BaseFeePerGas)
  42. enc.BlockHash = e.BlockHash
  43. if e.Transactions != nil {
  44. enc.Transactions = make([]hexutil.Bytes, len(e.Transactions))
  45. for k, v := range e.Transactions {
  46. enc.Transactions[k] = v
  47. }
  48. }
  49. return json.Marshal(&enc)
  50. }
  51. // UnmarshalJSON unmarshals from JSON.
  52. func (e *ExecutableDataV1) UnmarshalJSON(input []byte) error {
  53. type ExecutableDataV1 struct {
  54. ParentHash *common.Hash `json:"parentHash" gencodec:"required"`
  55. FeeRecipient *common.Address `json:"feeRecipient" gencodec:"required"`
  56. StateRoot *common.Hash `json:"stateRoot" gencodec:"required"`
  57. ReceiptsRoot *common.Hash `json:"receiptsRoot" gencodec:"required"`
  58. LogsBloom *hexutil.Bytes `json:"logsBloom" gencodec:"required"`
  59. Random *common.Hash `json:"prevRandao" gencodec:"required"`
  60. Number *hexutil.Uint64 `json:"blockNumber" gencodec:"required"`
  61. GasLimit *hexutil.Uint64 `json:"gasLimit" gencodec:"required"`
  62. GasUsed *hexutil.Uint64 `json:"gasUsed" gencodec:"required"`
  63. Timestamp *hexutil.Uint64 `json:"timestamp" gencodec:"required"`
  64. ExtraData *hexutil.Bytes `json:"extraData" gencodec:"required"`
  65. BaseFeePerGas *hexutil.Big `json:"baseFeePerGas" gencodec:"required"`
  66. BlockHash *common.Hash `json:"blockHash" gencodec:"required"`
  67. Transactions []hexutil.Bytes `json:"transactions" gencodec:"required"`
  68. }
  69. var dec ExecutableDataV1
  70. if err := json.Unmarshal(input, &dec); err != nil {
  71. return err
  72. }
  73. if dec.ParentHash == nil {
  74. return errors.New("missing required field 'parentHash' for ExecutableDataV1")
  75. }
  76. e.ParentHash = *dec.ParentHash
  77. if dec.FeeRecipient == nil {
  78. return errors.New("missing required field 'feeRecipient' for ExecutableDataV1")
  79. }
  80. e.FeeRecipient = *dec.FeeRecipient
  81. if dec.StateRoot == nil {
  82. return errors.New("missing required field 'stateRoot' for ExecutableDataV1")
  83. }
  84. e.StateRoot = *dec.StateRoot
  85. if dec.ReceiptsRoot == nil {
  86. return errors.New("missing required field 'receiptsRoot' for ExecutableDataV1")
  87. }
  88. e.ReceiptsRoot = *dec.ReceiptsRoot
  89. if dec.LogsBloom == nil {
  90. return errors.New("missing required field 'logsBloom' for ExecutableDataV1")
  91. }
  92. e.LogsBloom = *dec.LogsBloom
  93. if dec.Random == nil {
  94. return errors.New("missing required field 'prevRandao' for ExecutableDataV1")
  95. }
  96. e.Random = *dec.Random
  97. if dec.Number == nil {
  98. return errors.New("missing required field 'blockNumber' for ExecutableDataV1")
  99. }
  100. e.Number = uint64(*dec.Number)
  101. if dec.GasLimit == nil {
  102. return errors.New("missing required field 'gasLimit' for ExecutableDataV1")
  103. }
  104. e.GasLimit = uint64(*dec.GasLimit)
  105. if dec.GasUsed == nil {
  106. return errors.New("missing required field 'gasUsed' for ExecutableDataV1")
  107. }
  108. e.GasUsed = uint64(*dec.GasUsed)
  109. if dec.Timestamp == nil {
  110. return errors.New("missing required field 'timestamp' for ExecutableDataV1")
  111. }
  112. e.Timestamp = uint64(*dec.Timestamp)
  113. if dec.ExtraData == nil {
  114. return errors.New("missing required field 'extraData' for ExecutableDataV1")
  115. }
  116. e.ExtraData = *dec.ExtraData
  117. if dec.BaseFeePerGas == nil {
  118. return errors.New("missing required field 'baseFeePerGas' for ExecutableDataV1")
  119. }
  120. e.BaseFeePerGas = (*big.Int)(dec.BaseFeePerGas)
  121. if dec.BlockHash == nil {
  122. return errors.New("missing required field 'blockHash' for ExecutableDataV1")
  123. }
  124. e.BlockHash = *dec.BlockHash
  125. if dec.Transactions == nil {
  126. return errors.New("missing required field 'transactions' for ExecutableDataV1")
  127. }
  128. e.Transactions = make([][]byte, len(dec.Transactions))
  129. for k, v := range dec.Transactions {
  130. e.Transactions[k] = v
  131. }
  132. return nil
  133. }