aboutsummaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorBas van Kervel <bas@ethdev.com>2015-06-29 18:42:47 +0800
committerBas van Kervel <bas@ethdev.com>2015-06-29 18:42:47 +0800
commit61ccc39b569b0d9c1c0c5a51975723621dd312d0 (patch)
tree5910ca78175a6a706c60f9119d91c662d59368dd /rpc
parentf9264e87ec4c612f647a05ea11d5640709577a7f (diff)
downloaddexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar
dexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.gz
dexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.bz2
dexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.lz
dexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.xz
dexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.tar.zst
dexon-61ccc39b569b0d9c1c0c5a51975723621dd312d0.zip
initialize fields to prevent nil pointer exception
Diffstat (limited to 'rpc')
-rw-r--r--rpc/api/eth_args.go11
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))
}
}