code: func DisasmString(buf []byte) (string, error) {
  	var disbuf bytes.Buffer
  	opcodes, err := parseScript(buf)
  	for _, pop := range opcodes {
  		disbuf.WriteString(pop.print(true))
  		disbuf.WriteByte(' ')
  	}
  	if disbuf.Len() > 0 {
  		disbuf.Truncate(disbuf.Len() - 1)
  	}
  	if err != nil {
  		disbuf.WriteString("[error]")
  	}
  	return disbuf.String(), err
  }
docs: // DisasmString formats a disassembled script for one line printing.  When the
  // script fails to parse, the returned string will contain the disassembled
  // script up to the point the failure occurred along with the string '[error]'
  // appended.  In addition, the reason the script failed to parse is returned
  // if the caller wants more information about the failure.