diff options
Diffstat (limited to 'chain/state_transition.go')
-rw-r--r-- | chain/state_transition.go | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/chain/state_transition.go b/chain/state_transition.go index 41bdadedb..afe044299 100644 --- a/chain/state_transition.go +++ b/chain/state_transition.go @@ -4,7 +4,6 @@ import ( "fmt" "math/big" - "github.com/ethereum/go-ethereum/ethutil" "github.com/ethereum/go-ethereum/state" "github.com/ethereum/go-ethereum/vm" ) @@ -229,13 +228,38 @@ func (self *StateTransition) TransitionState() (err error) { } msg.Output = ret - } else { - // Add default LOG. Default = big(sender.addr) + 1 - addr := ethutil.BigD(receiver.Address()) - self.state.AddLog(state.Log{sender.Address(), [][]byte{ethutil.U256(addr.Add(addr, ethutil.Big1)).Bytes()}, nil}) } } + /* + * XXX The following _should_ replace the above transaction + * execution (also for regular calls. Will replace / test next + * phase + */ + /* + // Execute transaction + if tx.CreatesContract() { + self.rec = MakeContract(tx, self.state) + } + + address := self.Receiver().Address() + evm := vm.New(NewEnv(state, self.tx, self.block), vm.DebugVmTy) + exe := NewExecution(evm, address, self.tx.Data, self.gas, self.gas.Price, self.tx.Value) + ret, err := msg.Exec(address, self.Sender()) + if err != nil { + statelogger.Debugln(err) + } else { + if tx.CreatesContract() { + self.Receiver().Code = ret + } + msg.Output = ret + } + */ + + // Add default LOG. Default = big(sender.addr) + 1 + //addr := ethutil.BigD(receiver.Address()) + //self.state.AddLog(&state.Log{ethutil.U256(addr.Add(addr, ethutil.Big1)).Bytes(), [][]byte{sender.Address()}, nil}) + return } @@ -248,6 +272,8 @@ func (self *StateTransition) Eval(msg *state.Message, script []byte, context *st ) evm := vm.New(env, vm.DebugVmTy) + // TMP this will change in the refactor + callerClosure.SetExecution(vm.NewExecution(evm, nil, nil, nil, nil, self.tx.Value)) ret, _, err = callerClosure.Call(evm, self.tx.Data) return |