aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-05-08 20:20:06 +0800
committerobscuren <geffobscura@gmail.com>2014-05-08 20:20:06 +0800
commit554f4f6f7d8b8bc5332d42631ec9de0d7015eccf (patch)
tree7d68f54fb31700d7ab6b7d41395701f855c4183f
parent6c66cb3fa9d73fbb9f570a3f1b7f7dcd24ee2b7f (diff)
downloadgo-tangerine-554f4f6f7d8b8bc5332d42631ec9de0d7015eccf.tar.gz
go-tangerine-554f4f6f7d8b8bc5332d42631ec9de0d7015eccf.tar.zst
go-tangerine-554f4f6f7d8b8bc5332d42631ec9de0d7015eccf.zip
Fixed disasamble for all pushes
-rw-r--r--ethchain/asm.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/ethchain/asm.go b/ethchain/asm.go
index d46e46af7..492be0999 100644
--- a/ethchain/asm.go
+++ b/ethchain/asm.go
@@ -21,9 +21,10 @@ func Disassemble(script []byte) (asm []string) {
asm = append(asm, fmt.Sprintf("%v", op))
switch op {
- case oPUSH32: // Push PC+1 on to the stack
+ case oPUSH1, oPUSH2, oPUSH3, oPUSH4, oPUSH5, oPUSH6, oPUSH7, oPUSH8, oPUSH9, oPUSH10, oPUSH11, oPUSH12, oPUSH13, oPUSH14, oPUSH15, oPUSH16, oPUSH17, oPUSH18, oPUSH19, oPUSH20, oPUSH21, oPUSH22, oPUSH23, oPUSH24, oPUSH25, oPUSH26, oPUSH27, oPUSH28, oPUSH29, oPUSH30, oPUSH31, oPUSH32:
pc.Add(pc, ethutil.Big1)
- data := script[pc.Int64() : pc.Int64()+32]
+ a := int64(op) - int64(oPUSH1) + 1
+ data := script[pc.Int64() : pc.Int64()+a]
val := ethutil.BigD(data)
var b []byte
@@ -35,7 +36,7 @@ func Disassemble(script []byte) (asm []string) {
asm = append(asm, fmt.Sprintf("0x%x", b))
- pc.Add(pc, big.NewInt(31))
+ pc.Add(pc, big.NewInt(a-1))
}
pc.Add(pc, ethutil.Big1)