浏览代码

xeth: set balance max balance to from in call. Closes #951

obscuren 10 年之前
父节点
当前提交
79fa05867f
共有 2 个文件被更改,包括 3 次插入1 次删除
  1. 1 0
      common/big.go
  2. 2 1
      xeth/xeth.go

+ 1 - 0
common/big.go

@@ -13,6 +13,7 @@ var (
 	Big32    = big.NewInt(32)
 	Big256   = big.NewInt(0xff)
 	Big257   = big.NewInt(257)
+	MaxBig   = String2Big("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
 )
 
 // Big pow

+ 2 - 1
xeth/xeth.go

@@ -778,7 +778,7 @@ func (self *XEth) PushTx(encodedTx string) (string, error) {
 }
 
 func (self *XEth) Call(fromStr, toStr, valueStr, gasStr, gasPriceStr, dataStr string) (string, string, error) {
-	statedb := self.State().State() //self.eth.ChainManager().TransState()
+	statedb := self.State().State().Copy() //self.eth.ChainManager().TransState()
 	var from *state.StateObject
 	if len(fromStr) == 0 {
 		accounts, err := self.backend.AccountManager().Accounts()
@@ -791,6 +791,7 @@ func (self *XEth) Call(fromStr, toStr, valueStr, gasStr, gasPriceStr, dataStr st
 		from = statedb.GetOrNewStateObject(common.HexToAddress(fromStr))
 	}
 
+	from.SetBalance(common.MaxBig)
 	from.SetGasPool(self.backend.ChainManager().GasLimit())
 	msg := callmsg{
 		from:     from,