From ddf17d93acf92ef18b0134f19f22220362e06bad Mon Sep 17 00:00:00 2001 From: obscuren Date: Thu, 29 Jan 2015 14:46:59 +0100 Subject: Samples and disams cmd for evm code --- cmd/disasm/main.go | 34 ++++++++++++++++++++++ cmd/mist/assets/examples/abi.html | 55 +++++++++++++++++++++++++++++++++++ cmd/mist/assets/examples/balance.html | 40 +++++++++++++++++++++++++ cmd/mist/assets/examples/test.html | 44 ---------------------------- 4 files changed, 129 insertions(+), 44 deletions(-) create mode 100644 cmd/disasm/main.go create mode 100644 cmd/mist/assets/examples/abi.html create mode 100644 cmd/mist/assets/examples/balance.html delete mode 100644 cmd/mist/assets/examples/test.html (limited to 'cmd') diff --git a/cmd/disasm/main.go b/cmd/disasm/main.go new file mode 100644 index 000000000..c07246b00 --- /dev/null +++ b/cmd/disasm/main.go @@ -0,0 +1,34 @@ +package main + +import ( + "fmt" + "io/ioutil" + "os" + + "github.com/ethereum/go-ethereum/ethutil" + "github.com/ethereum/go-ethereum/vm" +) + +func main() { + code, err := ioutil.ReadAll(os.Stdin) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + code = ethutil.Hex2Bytes(string(code[:len(code)-1])) + fmt.Printf("%x\n", code) + + for pc := uint64(0); pc < uint64(len(code)); pc++ { + op := vm.OpCode(code[pc]) + fmt.Printf("%-5d %v", pc, op) + + switch op { + case vm.PUSH1, vm.PUSH2, vm.PUSH3, vm.PUSH4, vm.PUSH5, vm.PUSH6, vm.PUSH7, vm.PUSH8, vm.PUSH9, vm.PUSH10, vm.PUSH11, vm.PUSH12, vm.PUSH13, vm.PUSH14, vm.PUSH15, vm.PUSH16, vm.PUSH17, vm.PUSH18, vm.PUSH19, vm.PUSH20, vm.PUSH21, vm.PUSH22, vm.PUSH23, vm.PUSH24, vm.PUSH25, vm.PUSH26, vm.PUSH27, vm.PUSH28, vm.PUSH29, vm.PUSH30, vm.PUSH31, vm.PUSH32: + a := uint64(op) - uint64(vm.PUSH1) + 1 + fmt.Printf(" => %x", code[pc+1:pc+1+a]) + + pc += a + } + fmt.Println() + } +} diff --git a/cmd/mist/assets/examples/abi.html b/cmd/mist/assets/examples/abi.html new file mode 100644 index 000000000..8d172482c --- /dev/null +++ b/cmd/mist/assets/examples/abi.html @@ -0,0 +1,55 @@ + + + +Hello world + + + + + +

Contract content

+ +
+603880600c6000396000f3006001600060e060020a600035048063c6888fa1140
+05b6021600435602b565b8060005260206000f35b600081600702905091905056
+ +
+
7 x = + + + + diff --git a/cmd/mist/assets/examples/balance.html b/cmd/mist/assets/examples/balance.html new file mode 100644 index 000000000..bc483a879 --- /dev/null +++ b/cmd/mist/assets/examples/balance.html @@ -0,0 +1,40 @@ + + + + + + + + + +

coinbase balance

+ +
+
+
+
+ + + + diff --git a/cmd/mist/assets/examples/test.html b/cmd/mist/assets/examples/test.html deleted file mode 100644 index cfc010971..000000000 --- a/cmd/mist/assets/examples/test.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -Hello world - - - - - - -
-
- - - -- cgit v1.2.3