diff options
author | zelig <viktor.tron@gmail.com> | 2014-07-03 22:08:13 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2014-07-03 22:08:13 +0800 |
commit | de2da4fd19b53a541ffbddfa4360ceabef14f1a9 (patch) | |
tree | e1895a115645ae46b33ed33f5fcc148a1cd1a288 /ethchain/state_transition.go | |
parent | 198e5eeab9e2a7c359c12cdd5c8782dc56ae54ec (diff) | |
parent | 5d6713920625b82df2b55728b2cbb9f7f3df2025 (diff) | |
download | go-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.go | 17 |
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) { |