From a9959805e572ec438bf31ea97cb4a52e0e9715e9 Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 9 Apr 2015 00:44:20 +0200 Subject: Removed from as a requirement and changed Removed the from as a requiremet from the RPC eth_call. Xeth#Call now also default values to: 1. Supplied account 2. First account if any 3. No managed account => 000000..00 --- xeth/xeth.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'xeth') diff --git a/xeth/xeth.go b/xeth/xeth.go index 94014763a..407fe69d5 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -572,8 +572,20 @@ func (self *XEth) PushTx(encodedTx string) (string, error) { func (self *XEth) Call(fromStr, toStr, valueStr, gasStr, gasPriceStr, dataStr string) (string, error) { statedb := self.State().State() //self.eth.ChainManager().TransState() + var from *state.StateObject + if len(fromStr) == 0 { + accounts, err := self.backend.AccountManager().Accounts() + if err != nil || len(accounts) == 0 { + from = statedb.GetOrNewStateObject(common.Address{}) + } else { + from = statedb.GetOrNewStateObject(common.BytesToAddress(accounts[0].Address)) + } + } else { + from = statedb.GetOrNewStateObject(common.HexToAddress(fromStr)) + } + msg := callmsg{ - from: statedb.GetOrNewStateObject(common.HexToAddress(fromStr)), + from: from, to: common.HexToAddress(toStr), gas: common.Big(gasStr), gasPrice: common.Big(gasPriceStr), -- cgit v1.2.3