aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain/state_transition.go
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2014-07-03 22:08:13 +0800
committerzelig <viktor.tron@gmail.com>2014-07-03 22:08:13 +0800
commitde2da4fd19b53a541ffbddfa4360ceabef14f1a9 (patch)
treee1895a115645ae46b33ed33f5fcc148a1cd1a288 /ethchain/state_transition.go
parent198e5eeab9e2a7c359c12cdd5c8782dc56ae54ec (diff)
parent5d6713920625b82df2b55728b2cbb9f7f3df2025 (diff)
downloadgo-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.tar
go-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.tar.gz
go-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.tar.bz2
go-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.tar.lz
go-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.tar.xz
go-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.tar.zst
go-tangerine-de2da4fd19b53a541ffbddfa4360ceabef14f1a9.zip
Merge branch 'develop' of github.com:ethereum/eth-go into feature/clientid
Diffstat (limited to 'ethchain/state_transition.go')
-rw-r--r--ethchain/state_transition.go17
1 files changed, 5 insertions, 12 deletions
diff --git a/ethchain/state_transition.go b/ethchain/state_transition.go
index 9e7ef3efd..31196d2d7 100644
--- a/ethchain/state_transition.go
+++ b/ethchain/state_transition.go
@@ -1,7 +1,6 @@
package ethchain
import (
- "bytes"
"fmt"
"github.com/ethereum/eth-go/ethtrie"
"github.com/ethereum/eth-go/ethutil"
@@ -54,6 +53,7 @@ func (self *StateTransition) Sender() *StateObject {
}
self.sen = self.state.GetAccount(self.tx.Sender())
+
return self.sen
}
func (self *StateTransition) Receiver() *StateObject {
@@ -264,23 +264,16 @@ func Call(vm *Vm, closure *Closure, data []byte) (ret []byte, err error, deepErr
ret, _, err = closure.Call(vm, data)
deepErr = vm.err != nil
- Paranoia := ethutil.Config.Paranoia
- if Paranoia {
+ if ethutil.Config.Paranoia {
var (
context = closure.object
trie = context.state.trie
- trie2 = ethtrie.NewTrie(ethutil.Config.Db, "")
)
- trie.NewIterator().Each(func(key string, v *ethutil.Value) {
- trie2.Update(key, v.Str())
- })
-
- a := ethutil.NewValue(trie2.Root).Bytes()
- b := ethutil.NewValue(context.state.trie.Root).Bytes()
- if bytes.Compare(a, b) != 0 {
+ valid, t2 := ethtrie.ParanoiaCheck(trie)
+ if !valid {
// TODO FIXME ASAP
- context.state.trie = trie2
+ context.state.trie = t2
/*
statelogger.Debugf("(o): %x\n", trie.Root)
trie.NewIterator().Each(func(key string, v *ethutil.Value) {