From b4eef59b6f9631d22fdf62a2b1a40fe05209fccd Mon Sep 17 00:00:00 2001
From: Taylor Gerring <taylor.gerring@gmail.com>
Date: Thu, 2 Apr 2015 14:05:14 +0200
Subject: [PATCH] No longer require gas & gas price in transactions

Defaults to 0, which is then set to default values in XEth
---
 rpc/args.go      |  4 ++--
 rpc/args_test.go | 23 +++++++++++++++++------
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/rpc/args.go b/rpc/args.go
index df57e69c4..70618a01a 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -207,7 +207,7 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
 	args.Value = big.NewInt(num)
 
 	if ext.Gas == nil {
-		return NewValidationError("gas", "is required")
+		num = 0
 	} else {
 		if err := numString(ext.Gas, &num); err != nil {
 			return err
@@ -216,7 +216,7 @@ func (args *NewTxArgs) UnmarshalJSON(b []byte) (err error) {
 	args.Gas = big.NewInt(num)
 
 	if ext.GasPrice == nil {
-		return NewValidationError("gasprice", "is required")
+		num = 0
 	} else {
 		if err := numString(ext.GasPrice, &num); err != nil {
 			return err
diff --git a/rpc/args_test.go b/rpc/args_test.go
index 8c1e8c478..902f8013e 100644
--- a/rpc/args_test.go
+++ b/rpc/args_test.go
@@ -468,11 +468,16 @@ func TestNewTxArgsGasMissing(t *testing.T) {
   "value": "0x9184e72a000",
   "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
   }]`
+	expected := new(NewTxArgs)
+	expected.Gas = big.NewInt(0)
 
 	args := new(NewTxArgs)
-	str := ExpectValidationError(json.Unmarshal([]byte(input), &args))
-	if len(str) > 0 {
-		t.Error(str)
+	if err := json.Unmarshal([]byte(input), &args); err != nil {
+		t.Error(err)
+	}
+
+	if bytes.Compare(expected.Gas.Bytes(), args.Gas.Bytes()) != 0 {
+		t.Errorf("Gas shoud be %v but is %v", expected.Gas, args.Gas)
 	}
 }
 
@@ -484,12 +489,18 @@ func TestNewTxArgsBlockGaspriceMissing(t *testing.T) {
   "value": "0x9184e72a000",
   "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
   }]`
+	expected := new(NewTxArgs)
+	expected.GasPrice = big.NewInt(0)
 
 	args := new(NewTxArgs)
-	str := ExpectValidationError(json.Unmarshal([]byte(input), &args))
-	if len(str) > 0 {
-		t.Error(str)
+	if err := json.Unmarshal([]byte(input), &args); err != nil {
+		t.Error(err)
 	}
+
+	if bytes.Compare(expected.GasPrice.Bytes(), args.GasPrice.Bytes()) != 0 {
+		t.Errorf("GasPrice shoud be %v but is %v", expected.GasPrice, args.GasPrice)
+	}
+
 }
 
 func TestNewTxArgsValueMissing(t *testing.T) {
-- 
GitLab