code: func abstractVerify(op *parsedOpcode, vm *Engine, c ErrorCode) error {
  	verified, err := vm.dstack.PopBool()
  	if err != nil {
  		return err
  	}
  
  	if !verified {
  		str := fmt.Sprintf("%s failed", op.opcode.name)
  		return scriptError(c, str)
  	}
  	return nil
  }
docs: // abstractVerify examines the top item on the data stack as a boolean value and
  // verifies it evaluates to true.  An error is returned either when there is no
  // item on the stack or when that item evaluates to false.  In the latter case
  // where the verification fails specifically due to the top item evaluating
  // to false, the returned error will use the passed error code.