From 4142708d9d30a38c3071b895b2c42f8723830fb1 Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Tue, 24 Feb 2015 08:51:58 +0100 Subject: [PATCH 1/3] Convert gas values to integers Fixes #370 --- rpc/packages.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/rpc/packages.go b/rpc/packages.go index b51bde7ce..4056494de 100644 --- a/rpc/packages.go +++ b/rpc/packages.go @@ -25,11 +25,6 @@ import ( "github.com/ethereum/go-ethereum/xeth" ) -const ( - defaultGasPrice = "10000000000000" - defaultGas = "10000" -) - type EthereumApi struct { xeth *xeth.XEth quit chan struct{} @@ -45,17 +40,22 @@ type EthereumApi struct { register map[string][]*NewTxArgs db ethutil.Database + + defaultGasPrice *big.Int + defaultGas *big.Int } func NewEthereumApi(eth *xeth.XEth) *EthereumApi { db, _ := ethdb.NewLDBDatabase("dapps") api := &EthereumApi{ - xeth: eth, - quit: make(chan struct{}), - filterManager: filter.NewFilterManager(eth.Backend().EventMux()), - logs: make(map[int]*logFilter), - messages: make(map[int]*whisperFilter), - db: db, + xeth: eth, + quit: make(chan struct{}), + filterManager: filter.NewFilterManager(eth.Backend().EventMux()), + logs: make(map[int]*logFilter), + messages: make(map[int]*whisperFilter), + db: db, + defaultGasPrice: big.NewInt(10000000000000), + defaultGas: big.NewInt(10000), } go api.filterManager.Start() go api.start() @@ -192,11 +192,11 @@ func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error { func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error { if len(args.Gas) == 0 { - args.Gas = defaultGas + args.Gas = p.defaultGas.String() } if len(args.GasPrice) == 0 { - args.GasPrice = defaultGasPrice + args.GasPrice = p.defaultGasPrice.String() } // TODO if no_private_key then @@ -525,7 +525,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error } return p.AllLogs(args, reply) case "eth_gasPrice": - *reply = defaultGasPrice + *reply = "0x" + toHex(p.defaultGasPrice.Bytes()) return nil case "eth_register": args, err := req.ToRegisterArgs() From 2a7ca69a8260b887a309e1c43a74b4e644c391fa Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Tue, 24 Feb 2015 16:46:43 +0100 Subject: [PATCH 2/3] Fix duplicate leading 0x --- rpc/packages.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpc/packages.go b/rpc/packages.go index 4056494de..e48005d89 100644 --- a/rpc/packages.go +++ b/rpc/packages.go @@ -525,7 +525,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error } return p.AllLogs(args, reply) case "eth_gasPrice": - *reply = "0x" + toHex(p.defaultGasPrice.Bytes()) + *reply = toHex(p.defaultGasPrice.Bytes()) return nil case "eth_register": args, err := req.ToRegisterArgs() From 1e919a5e977f81b746568e50604b63d1dd393a6b Mon Sep 17 00:00:00 2001 From: Taylor Gerring Date: Tue, 24 Feb 2015 17:32:11 +0100 Subject: [PATCH 3/3] Move amounts to global vars --- rpc/packages.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/rpc/packages.go b/rpc/packages.go index e48005d89..bf75d1ddb 100644 --- a/rpc/packages.go +++ b/rpc/packages.go @@ -25,6 +25,11 @@ import ( "github.com/ethereum/go-ethereum/xeth" ) +var ( + defaultGasPrice = big.NewInt(10000000000000) + defaultGas = big.NewInt(10000) +) + type EthereumApi struct { xeth *xeth.XEth quit chan struct{} @@ -40,22 +45,17 @@ type EthereumApi struct { register map[string][]*NewTxArgs db ethutil.Database - - defaultGasPrice *big.Int - defaultGas *big.Int } func NewEthereumApi(eth *xeth.XEth) *EthereumApi { db, _ := ethdb.NewLDBDatabase("dapps") api := &EthereumApi{ - xeth: eth, - quit: make(chan struct{}), - filterManager: filter.NewFilterManager(eth.Backend().EventMux()), - logs: make(map[int]*logFilter), - messages: make(map[int]*whisperFilter), - db: db, - defaultGasPrice: big.NewInt(10000000000000), - defaultGas: big.NewInt(10000), + xeth: eth, + quit: make(chan struct{}), + filterManager: filter.NewFilterManager(eth.Backend().EventMux()), + logs: make(map[int]*logFilter), + messages: make(map[int]*whisperFilter), + db: db, } go api.filterManager.Start() go api.start() @@ -192,11 +192,11 @@ func (p *EthereumApi) GetBlock(args *GetBlockArgs, reply *interface{}) error { func (p *EthereumApi) Transact(args *NewTxArgs, reply *interface{}) error { if len(args.Gas) == 0 { - args.Gas = p.defaultGas.String() + args.Gas = defaultGas.String() } if len(args.GasPrice) == 0 { - args.GasPrice = p.defaultGasPrice.String() + args.GasPrice = defaultGasPrice.String() } // TODO if no_private_key then @@ -525,7 +525,7 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error } return p.AllLogs(args, reply) case "eth_gasPrice": - *reply = toHex(p.defaultGasPrice.Bytes()) + *reply = toHex(defaultGasPrice.Bytes()) return nil case "eth_register": args, err := req.ToRegisterArgs()