diff options
author | Bas van Kervel <bas@ethdev.com> | 2015-06-29 18:42:47 +0800 |
---|---|---|
committer | Bas van Kervel <bas@ethdev.com> | 2015-06-29 18:42:47 +0800 |
commit | 61ccc39b569b0d9c1c0c5a51975723621dd312d0 (patch) | |
tree | 5910ca78175a6a706c60f9119d91c662d59368dd /rpc/api | |
parent | f9264e87ec4c612f647a05ea11d5640709577a7f (diff) | |
download | go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.gz go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.bz2 go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.lz go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.xz go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.zst go-tangerine-61ccc39b569b0d9c1c0c5a51975723621dd312d0.zip |
initialize fields to prevent nil pointer exception
Diffstat (limited to 'rpc/api')
-rw-r--r-- | rpc/api/eth_args.go | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/rpc/api/eth_args.go b/rpc/api/eth_args.go index 203171d58..b5507832d 100644 --- a/rpc/api/eth_args.go +++ b/rpc/api/eth_args.go @@ -906,6 +906,9 @@ func (tx *tx) UnmarshalJSON(b []byte) (err error) { } trans := new(types.Transaction) + trans.Amount = new(big.Int) + trans.GasLimit = new(big.Int) + trans.Price = new(big.Int) if val, found := fields["To"]; found { if strVal, ok := val.(string); ok && len(strVal) > 0 { @@ -928,13 +931,15 @@ func (tx *tx) UnmarshalJSON(b []byte) (err error) { return shared.NewDecodeParamError(fmt.Sprintf("Unable to decode tx.Nonce - %v", err)) } } + } else { + return shared.NewDecodeParamError("tx.Nonce not found") } var parseOk bool if val, found := fields["Value"]; found { if strVal, ok := val.(string); ok { tx.Value = strVal - if trans.Amount, parseOk = new(big.Int).SetString(strVal, 0); !parseOk { + if _, parseOk = trans.Amount.SetString(strVal, 0); !parseOk { return shared.NewDecodeParamError(fmt.Sprintf("Unable to decode tx.Amount - %v", err)) } } @@ -954,7 +959,7 @@ func (tx *tx) UnmarshalJSON(b []byte) (err error) { if val, found := fields["GasLimit"]; found { if strVal, ok := val.(string); ok { tx.GasLimit = strVal - if trans.GasLimit, parseOk = new(big.Int).SetString(strVal, 0); !parseOk { + if _, parseOk = trans.GasLimit.SetString(strVal, 0); !parseOk { return shared.NewDecodeParamError(fmt.Sprintf("Unable to decode tx.GasLimit - %v", err)) } } @@ -963,7 +968,7 @@ func (tx *tx) UnmarshalJSON(b []byte) (err error) { if val, found := fields["GasPrice"]; found { if strVal, ok := val.(string); ok { tx.GasPrice = strVal - if trans.Price, parseOk = new(big.Int).SetString(strVal, 0); !parseOk { + if _, parseOk = trans.Price.SetString(strVal, 0); !parseOk { return shared.NewDecodeParamError(fmt.Sprintf("Unable to decode tx.GasPrice - %v", err)) } } |