diff --git a/cmd/disasm/main.go b/cmd/disasm/main.go new file mode 100644 index 0000000000..c07246b004 --- /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/test.html b/cmd/mist/assets/examples/abi.html similarity index 67% rename from cmd/mist/assets/examples/test.html rename to cmd/mist/assets/examples/abi.html index cfc0109718..8d172482c9 100644 --- a/cmd/mist/assets/examples/test.html +++ b/cmd/mist/assets/examples/abi.html @@ -20,11 +20,10 @@ }] }]; var address = web3.eth.transact({ - data: "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b6000816007029050", + data: "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056", gasprice: "1000000000000000", gas: "10000", }); - console.log("created contract with addr:"+ address); var contract = web3.eth.contract(address, desc); function calculate() { @@ -36,9 +35,21 @@
+
+603880600c6000396000f3006001600060e060020a600035048063c6888fa1140
+05b6021600435602b565b8060005260206000f35b600081600702905091905056
-
-
+