github.com/insight-chain/inb-go@v1.1.3-0.20191221022159-da049980ae38/core/types/gen_tx_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/insight-chain/inb-go/common" 11 "github.com/insight-chain/inb-go/common/hexutil" 12 ) 13 14 var _ = (*txdataMarshaling)(nil) 15 16 // MarshalJSON marshals as JSON. 17 func (t txdata) MarshalJSON() ([]byte, error) { 18 type txdata struct { 19 AccountNonce hexutil.Uint64 `json:"nonce" gencodec:"required"` 20 Recipient *common.Address `json:"to" rlp:"nil"` 21 Amount *hexutil.Big `json:"value" gencodec:"required"` 22 Payload hexutil.Bytes `json:"input" gencodec:"required"` 23 V *hexutil.Big `json:"v" gencodec:"required"` 24 R *hexutil.Big `json:"r" gencodec:"required"` 25 S *hexutil.Big `json:"s" gencodec:"required"` 26 Hash *common.Hash `json:"hash" rlp:"-"` 27 TxType hexutil.Uint64 `json:"txType" gencodec:"required"` 28 ExtraSignature *ExtraSignature `json:"extraSignature" gencodec:"nil"` 29 } 30 var enc txdata 31 enc.AccountNonce = hexutil.Uint64(t.AccountNonce) 32 enc.Recipient = t.Recipient 33 enc.Amount = (*hexutil.Big)(t.Amount) 34 enc.Payload = t.Payload 35 enc.V = (*hexutil.Big)(t.V) 36 enc.R = (*hexutil.Big)(t.R) 37 enc.S = (*hexutil.Big)(t.S) 38 enc.Hash = t.Hash 39 enc.TxType = hexutil.Uint64(t.TxType) 40 enc.ExtraSignature = t.ExtraSignature 41 if t.ExtraSignature != nil { 42 enc.ExtraSignature.Rp = (t.ExtraSignature.Rp) 43 enc.ExtraSignature.Vp = (t.ExtraSignature.Vp) 44 enc.ExtraSignature.Sp = (t.ExtraSignature.Sp) 45 } 46 return json.Marshal(&enc) 47 } 48 49 // UnmarshalJSON unmarshals from JSON. 50 func (t *txdata) UnmarshalJSON(input []byte) error { 51 type txdata struct { 52 AccountNonce *hexutil.Uint64 `json:"nonce" gencodec:"required"` 53 Recipient *common.Address `json:"to" rlp:"nil"` 54 Amount *hexutil.Big `json:"value" gencodec:"required"` 55 Payload *hexutil.Bytes `json:"input" gencodec:"required"` 56 V *hexutil.Big `json:"v" gencodec:"required"` 57 R *hexutil.Big `json:"r" gencodec:"required"` 58 S *hexutil.Big `json:"s" gencodec:"required"` 59 Hash *common.Hash `json:"hash" rlp:"-"` 60 TxType *hexutil.Uint64 `json:"txType" gencodec:"required"` 61 ExtraSignature *ExtraSignature `json:"extraSignature" gencodec:"nil"` 62 } 63 var dec txdata 64 if err := json.Unmarshal(input, &dec); err != nil { 65 return err 66 } 67 if dec.AccountNonce == nil { 68 return errors.New("missing required field 'nonce' for txdata") 69 } 70 t.AccountNonce = uint64(*dec.AccountNonce) 71 if dec.Recipient != nil { 72 t.Recipient = dec.Recipient 73 } 74 if dec.Amount == nil { 75 return errors.New("missing required field 'value' for txdata") 76 } 77 t.Amount = (*big.Int)(dec.Amount) 78 if dec.Payload == nil { 79 return errors.New("missing required field 'input' for txdata") 80 } 81 t.Payload = *dec.Payload 82 if dec.V == nil { 83 return errors.New("missing required field 'v' for txdata") 84 } 85 t.V = (*big.Int)(dec.V) 86 if dec.R == nil { 87 return errors.New("missing required field 'r' for txdata") 88 } 89 t.R = (*big.Int)(dec.R) 90 if dec.S == nil { 91 return errors.New("missing required field 's' for txdata") 92 } 93 t.S = (*big.Int)(dec.S) 94 if dec.Hash != nil { 95 t.Hash = dec.Hash 96 } 97 if dec.TxType == nil { 98 return errors.New("missing required field 'txType' for txdata") 99 } 100 t.TxType = TxType(*dec.TxType) 101 if dec.ExtraSignature != nil && dec.ExtraSignature.ResourcePayer != nil { 102 t.ExtraSignature = dec.ExtraSignature 103 if dec.ExtraSignature.Sp != nil { 104 t.ExtraSignature.Sp = (*big.Int)(dec.ExtraSignature.Sp) 105 } 106 if dec.ExtraSignature.Vp != nil { 107 t.ExtraSignature.Vp = (*big.Int)(dec.ExtraSignature.Vp) 108 } 109 if dec.ExtraSignature.Rp != nil { 110 t.ExtraSignature.Rp = (*big.Int)(dec.ExtraSignature.Rp) 111 } 112 } 113 return nil 114 }