aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helper/vm.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/helper/vm.go')
-rw-r--r--tests/helper/vm.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/helper/vm.go b/tests/helper/vm.go
index 797a2acf5..2f3ec30f7 100644
--- a/tests/helper/vm.go
+++ b/tests/helper/vm.go
@@ -15,6 +15,7 @@ type Env struct {
depth int
state *state.StateDB
skipTransfer bool
+ initial bool
Gas *big.Int
origin []byte
@@ -68,9 +69,17 @@ func (self *Env) Depth() int { return self.depth }
func (self *Env) SetDepth(i int) { self.depth = i }
func (self *Env) Transfer(from, to vm.Account, amount *big.Int) error {
if self.skipTransfer {
+ // ugly hack
+ if self.initial {
+ self.initial = false
+ return nil
+ }
+
if from.Balance().Cmp(amount) < 0 {
return errors.New("Insufficient balance in account")
}
+
+ return nil
}
return vm.Transfer(from, to, amount)
}
@@ -109,10 +118,10 @@ func RunVm(state *state.StateDB, env, exec map[string]string) ([]byte, state.Log
)
caller := state.GetOrNewStateObject(from)
- caller.SetBalance(ethutil.Big("1000000000000000000"))
vmenv := NewEnvFromMap(state, env, exec)
vmenv.skipTransfer = true
+ vmenv.initial = true
ret, err := vmenv.Call(caller, to, data, gas, price, value)
return ret, vmenv.logs, vmenv.Gas, err