github.com/arieschain/arieschain@v0.0.0-20191023063405-37c074544356/cmd/evm/disasm.go (about) 1 2 package main 3 4 import ( 5 "errors" 6 "fmt" 7 "io/ioutil" 8 "strings" 9 10 "github.com/quickchainproject/quickchain/core/asm" 11 cli "gopkg.in/urfave/cli.v1" 12 ) 13 14 var disasmCommand = cli.Command{ 15 Action: disasmCmd, 16 Name: "disasm", 17 Usage: "disassembles evm binary", 18 ArgsUsage: "<file>", 19 } 20 21 func disasmCmd(ctx *cli.Context) error { 22 if len(ctx.Args().First()) == 0 { 23 return errors.New("filename required") 24 } 25 26 fn := ctx.Args().First() 27 in, err := ioutil.ReadFile(fn) 28 if err != nil { 29 return err 30 } 31 32 code := strings.TrimSpace(string(in[:])) 33 fmt.Printf("%v\n", code) 34 return asm.PrintDisassembled(code) 35 }