diff options
author | obscuren <geffobscura@gmail.com> | 2014-07-15 06:25:49 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-07-15 06:25:49 +0800 |
commit | 2784e256f1c5f8112486e9037c9b00e628e5aa10 (patch) | |
tree | fc4740c381d00efa5777159c129ab9ad2c2836dc /ethchain/vm.go | |
parent | 50bc838047709796596f447ef3e60d0e4ab47fde (diff) | |
download | dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.tar dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.tar.gz dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.tar.bz2 dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.tar.lz dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.tar.xz dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.tar.zst dexon-2784e256f1c5f8112486e9037c9b00e628e5aa10.zip |
Vm logging on diff
Diffstat (limited to 'ethchain/vm.go')
-rw-r--r-- | ethchain/vm.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ethchain/vm.go b/ethchain/vm.go index f1794ff77..788bde886 100644 --- a/ethchain/vm.go +++ b/ethchain/vm.go @@ -184,7 +184,8 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) { var mult *big.Int y, x := stack.Peekn() val := closure.GetStorage(x) - if val.IsEmpty() && len(y.Bytes()) > 0 { + //if val.IsEmpty() && len(y.Bytes()) > 0 { + if val.BigInt().Cmp(ethutil.Big0) == 0 && len(y.Bytes()) > 0 { mult = ethutil.Big2 } else if !val.IsEmpty() && len(y.Bytes()) == 0 { mult = ethutil.Big0 @@ -482,7 +483,7 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) { case ORIGIN: stack.Push(ethutil.BigD(vm.vars.Origin)) - vm.Printf(" => %v", vm.vars.Origin) + vm.Printf(" => %x", vm.vars.Origin) case CALLER: caller := closure.caller.Address() stack.Push(ethutil.BigD(caller)) @@ -550,10 +551,10 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) { } code := closure.Script[cOff : cOff+l] - fmt.Println("len:", l, "code off:", cOff, "mem off:", mOff) + //fmt.Println("len:", l, "code off:", cOff, "mem off:", mOff) mem.Set(mOff, l, code) - fmt.Println(Code(mem.Get(mOff, l))) + //fmt.Println(Code(mem.Get(mOff, l))) case GASPRICE: stack.Push(closure.Price) @@ -743,6 +744,7 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) { if closure.object.Amount.Cmp(value) < 0 { vmlogger.Debugf("Insufficient funds to transfer value. Req %v, has %v", value, closure.object.Amount) + closure.ReturnGas(gas, nil, nil) stack.Push(ethutil.BigFalse) |