diff options
author | obscuren <geffobscura@gmail.com> | 2014-04-23 21:53:53 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-04-23 21:53:53 +0800 |
commit | c81804444f69ae1653d54551d8555ff924651cd9 (patch) | |
tree | c0c19316adb648eccb9696b1c953531d06a8b11f /ethchain/state_manager.go | |
parent | ef7f3f36e261bc500016dac0a703c5b7931a1721 (diff) | |
download | dexon-c81804444f69ae1653d54551d8555ff924651cd9.tar.gz dexon-c81804444f69ae1653d54551d8555ff924651cd9.tar.zst dexon-c81804444f69ae1653d54551d8555ff924651cd9.zip |
Call initial closure with proper tx argument
Diffstat (limited to 'ethchain/state_manager.go')
-rw-r--r-- | ethchain/state_manager.go | 33 |
1 files changed, 1 insertions, 32 deletions
diff --git a/ethchain/state_manager.go b/ethchain/state_manager.go index 23da77fae..668a44c3f 100644 --- a/ethchain/state_manager.go +++ b/ethchain/state_manager.go @@ -133,37 +133,6 @@ func (sm *StateManager) ApplyTransactions(block *Block, txs []*Transaction) { } } } - // Process each transaction/contract - for _, tx := range txs { - // If there's no recipient, it's a contract - // Check if this is a contract creation traction and if so - // create a contract of this tx. - if tx.IsContract() { - contract := sm.MakeContract(tx) - if contract != nil { - sm.EvalScript(contract.Init(), contract, tx, block) - } else { - ethutil.Config.Log.Infoln("[STATE] Unable to create contract") - } - } else { - // Figure out if the address this transaction was sent to is a - // contract or an actual account. In case of a contract, we process that - // contract instead of moving funds between accounts. - var err error - if contract := sm.procState.GetContract(tx.Recipient); contract != nil { - err = sm.Ethereum.TxPool().ProcessTransaction(tx, block, true) - if err == nil { - sm.EvalScript(contract.Script(), contract, tx, block) - } - } else { - err = sm.Ethereum.TxPool().ProcessTransaction(tx, block, false) - } - - if err != nil { - ethutil.Config.Log.Infoln("[STATE]", err) - } - } - } } // The prepare function, prepares the state manager for the next @@ -359,7 +328,7 @@ func (sm *StateManager) EvalScript(script []byte, object *StateObject, tx *Trans Diff: block.Difficulty, //Price: tx.GasPrice, }) - closure.Call(vm, nil, nil) + closure.Call(vm, tx.Data, nil) // Update the account (refunds) sm.procState.UpdateStateObject(caller) |