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
This commit is contained in:
obscuren
2015-04-09 00:44:20 +02:00
parent 204ac81188
commit a9959805e5
3 changed files with 13 additions and 21 deletions

View File

@ -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),