aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain
diff options
context:
space:
mode:
authorMaran <maran.hidskes@gmail.com>2014-05-21 19:06:42 +0800
committerMaran <maran.hidskes@gmail.com>2014-05-21 19:06:42 +0800
commit1275e5bdc978d2f22ceb45a61f03d7873f069518 (patch)
tree5e0c2b4b999a754a195be0987b1e3f589c6f852a /ethchain
parentd658a7f4ab7691783157151912f43c177825b0e8 (diff)
parent86cf69648efc5029abffbf39f1be7308acb1531e (diff)
downloadgo-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar
go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.gz
go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.bz2
go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.lz
go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.xz
go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.zst
go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.zip
Merge branch 'develop' of github.com:ethereum/eth-go into develop
Diffstat (limited to 'ethchain')
-rw-r--r--ethchain/state_manager.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/ethchain/state_manager.go b/ethchain/state_manager.go
index 9fe485b7a..8b56d65bb 100644
--- a/ethchain/state_manager.go
+++ b/ethchain/state_manager.go
@@ -104,7 +104,7 @@ func (sm *StateManager) ApplyTransactions(state *State, block *Block, txs []*Tra
}
}
-func (sm *StateManager) ApplyTransaction(state *State, block *Block, tx *Transaction) {
+func (sm *StateManager) ApplyTransaction(state *State, block *Block, tx *Transaction) error {
// 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.
@@ -115,10 +115,10 @@ func (sm *StateManager) ApplyTransaction(state *State, block *Block, tx *Transac
if contract != nil {
sm.EvalScript(state, contract.Init(), contract, tx, block)
} else {
- ethutil.Config.Log.Infoln("[STATE] Unable to create contract")
+ return fmt.Errorf("[STATE] Unable to create contract")
}
} else {
- ethutil.Config.Log.Infoln("[STATE] contract create:", err)
+ return fmt.Errorf("[STATE] contract create:", err)
}
} else {
err := sm.Ethereum.TxPool().ProcessTransaction(tx, block, false)
@@ -126,9 +126,11 @@ func (sm *StateManager) ApplyTransaction(state *State, block *Block, tx *Transac
if err == nil && contract != nil && len(contract.Script()) > 0 {
sm.EvalScript(state, contract.Script(), contract, tx, block)
} else if err != nil {
- ethutil.Config.Log.Infoln("[STATE] process:", err)
+ return fmt.Errorf("[STATE] process:", err)
}
}
+
+ return nil
}
func (sm *StateManager) Process(block *Block, dontReact bool) error {
@@ -184,7 +186,7 @@ func (sm *StateManager) ProcessBlock(state *State, parent, block *Block, dontRea
//if !sm.compState.Cmp(state) {
if !block.State().Cmp(state) {
- return fmt.Errorf("Invalid merkle root. Expected %x, got %x", block.State().trie.Root, state.trie.Root)
+ return fmt.Errorf("Invalid merkle root.\nrec: %x\nis: %x", block.State().trie.Root, state.trie.Root)
}
// Calculate the new total difficulty and sync back to the db