aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-07-16 02:35:55 +0800
committerobscuren <geffobscura@gmail.com>2014-07-16 02:35:55 +0800
commit7a410643ac5dc7cc297cbdb094539761230440d0 (patch)
tree13e3c43b517639510ccb54451daa7e04073f45ca /ethchain
parent34da3b4fa8133a2042919fe344b7bc656fcad4f2 (diff)
downloadgo-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.tar
go-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.tar.gz
go-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.tar.bz2
go-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.tar.lz
go-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.tar.xz
go-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.tar.zst
go-tangerine-7a410643ac5dc7cc297cbdb094539761230440d0.zip
Added/changed logging
Diffstat (limited to 'ethchain')
-rw-r--r--ethchain/state_object.go5
-rw-r--r--ethchain/vm.go10
2 files changed, 12 insertions, 3 deletions
diff --git a/ethchain/state_object.go b/ethchain/state_object.go
index 5791c6ed1..889496e91 100644
--- a/ethchain/state_object.go
+++ b/ethchain/state_object.go
@@ -143,6 +143,7 @@ func (self *StateObject) getStorage(k []byte) *ethutil.Value {
func (self *StateObject) setStorage(k []byte, value *ethutil.Value) {
key := ethutil.LeftPadBytes(k, 32)
+ //fmt.Printf("%x %v\n", key, value)
self.storage[string(key)] = value.Copy()
}
@@ -158,9 +159,9 @@ func (self *StateObject) Sync() {
valid, t2 := ethtrie.ParanoiaCheck(self.state.trie)
if !valid {
- self.state.trie = t2
+ statelogger.Infof("Warn: PARANOIA: Different state storage root during copy %x vs %x\n", self.state.trie.Root, t2.Root)
- statelogger.Infoln("Warn: PARANOIA: Different state storage root during copy")
+ self.state.trie = t2
}
}
diff --git a/ethchain/vm.go b/ethchain/vm.go
index 788bde886..3a956ee83 100644
--- a/ethchain/vm.go
+++ b/ethchain/vm.go
@@ -155,6 +155,15 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
// XXX Leave this Println intact. Don't change this to the log system.
// Used for creating diffs between implementations
if vm.logTy == LogTyDiff {
+ switch op {
+ case STOP, RETURN, SUICIDE:
+ closure.object.Sync()
+ closure.object.state.EachStorage(func(key string, value *ethutil.Value) {
+ value.Decode()
+ fmt.Printf("%x %x\n", new(big.Int).SetBytes([]byte(key)).Bytes(), value.Bytes())
+ })
+ }
+
b := pc.Bytes()
if len(b) == 0 {
b = []byte{0}
@@ -184,7 +193,6 @@ func (vm *Vm) RunClosure(closure *Closure) (ret []byte, err error) {
var mult *big.Int
y, x := stack.Peekn()
val := closure.GetStorage(x)
- //if val.IsEmpty() && len(y.Bytes()) > 0 {
if val.BigInt().Cmp(ethutil.Big0) == 0 && len(y.Bytes()) > 0 {
mult = ethutil.Big2
} else if !val.IsEmpty() && len(y.Bytes()) == 0 {