diff options
author | obscuren <geffobscura@gmail.com> | 2014-08-15 22:19:10 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-08-15 22:19:10 +0800 |
commit | 7d95e8624a3bdca4a68b2a7ff6ed133264088cc1 (patch) | |
tree | 2509b79c2b24015e339132eb80e28773df0b106e /ethvm/vm.go | |
parent | 2b9f71c6ca45929ccef844838c633aa0af5802be (diff) | |
download | go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.tar go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.tar.gz go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.tar.bz2 go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.tar.lz go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.tar.xz go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.tar.zst go-tangerine-7d95e8624a3bdca4a68b2a7ff6ed133264088cc1.zip |
Added message to closure && added change addresses
Diffstat (limited to 'ethvm/vm.go')
-rw-r--r-- | ethvm/vm.go | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/ethvm/vm.go b/ethvm/vm.go index a0d4db591..789697865 100644 --- a/ethvm/vm.go +++ b/ethvm/vm.go @@ -645,8 +645,7 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) { val, loc := stack.Popn() closure.SetStorage(loc, ethutil.NewValue(val)) - // Add the change to manifest - self.env.State().Manifest().AddStorageChange(closure.Object(), loc.Bytes(), val) + closure.message.AddStorageChange(loc.Bytes()) self.Printf(" {0x%x : 0x%x}", loc.Bytes(), val.Bytes()) case JUMP: @@ -719,7 +718,7 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) { closure.UseGas(closure.Gas) // Create the closure - c := NewClosure(closure, contract, initCode, gas, closure.Price) + c := NewClosure(msg, closure, contract, initCode, gas, closure.Price) // Call the closure and set the return value as // main script. contract.Code, _, err = c.Call(self, nil) @@ -783,7 +782,7 @@ func (self *Vm) RunClosure(closure *Closure) (ret []byte, err error) { stateObject.AddAmount(value) // Create a new callable closure - c := NewClosure(closure, stateObject, stateObject.Code, gas, closure.Price) + c := NewClosure(msg, closure, stateObject, stateObject.Code, gas, closure.Price) // Executer the closure and get the return value (if any) ret, _, err := c.Call(self, args) if err != nil { |