aboutsummaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
Diffstat (limited to 'rpc')
-rw-r--r--rpc/args.go10
-rw-r--r--rpc/packages.go17
2 files changed, 13 insertions, 14 deletions
diff --git a/rpc/args.go b/rpc/args.go
index 34e706b98..84b076d4a 100644
--- a/rpc/args.go
+++ b/rpc/args.go
@@ -37,16 +37,6 @@ type NewTxArgs struct {
Data string `json:"data"`
}
-func (a *NewTxArgs) requirements() error {
- if a.Gas == "" {
- return NewErrorResponse("Transact requires a 'gas' value as argument")
- }
- if a.GasPrice == "" {
- return NewErrorResponse("Transact requires a 'gasprice' value as argument")
- }
- return nil
-}
-
type PushTxArgs struct {
Tx string `json:"tx"`
}
diff --git a/rpc/packages.go b/rpc/packages.go
index a98d99d6c..047bbda9a 100644
--- a/rpc/packages.go
+++ b/rpc/packages.go
@@ -40,6 +40,11 @@ import (
"github.com/ethereum/go-ethereum/xeth"
)
+const (
+ defaultGasPrice = "10000000000000"
+ defaultGas = "10000"
+)
+
type EthereumApi struct {
xeth *xeth.XEth
filterManager *filter.FilterManager
@@ -116,10 +121,14 @@ func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error {
}
func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error {
- err := args.requirements()
- if err != nil {
- return err
+ if len(args.Gas) == 0 {
+ args.Gas = defaultGas
+ }
+
+ if len(args.GasPrice) == 0 {
+ args.GasPrice = defaultGasPrice
}
+
result, _ := p.xeth.Transact( /* TODO specify account */ args.To, args.Value, args.Gas, args.GasPrice, args.Data)
*reply = result
return nil
@@ -387,7 +396,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
}
return p.FilterChanged(args, reply)
case "eth_gasPrice":
- *reply = "10000000000000"
+ *reply = defaultGasPrice
return nil
case "web3_sha3":
args, err := req.ToSha3Args()