code: func opcodeNop(op *parsedOpcode, vm *Engine) error {
  	switch op.opcode.value {
  	case OP_NOP1, OP_NOP4, OP_NOP5,
  		OP_NOP6, OP_NOP7, OP_NOP8, OP_NOP9, OP_NOP10:
  		if vm.hasFlag(ScriptDiscourageUpgradableNops) {
  			str := fmt.Sprintf("OP_NOP%d reserved for soft-fork "+
  				"upgrades", op.opcode.value-(OP_NOP1-1))
  			return scriptError(ErrDiscourageUpgradableNOPs, str)
  		}
  	}
  	return nil
  }
docs: // opcodeNop is a common handler for the NOP family of opcodes.  As the name
  // implies it generally does nothing, however, it will return an error when
  // the flag to discourage use of NOPs is set for select opcodes.