def select_coins(self, colorvalue, use_fee_estimator=None):
        self._validate_select_coins_parameters(colorvalue, use_fee_estimator)
        colordef = colorvalue.get_colordef()
        if colordef == UNCOLORED_MARKER:
            return self.select_uncolored_coins(colorvalue, use_fee_estimator)

        color_id = colordef.get_color_id()
        if color_id in self.inputs:
            # use inputs provided in proposal
            total = SimpleColorValue.sum([cv_u[0]
                                          for cv_u in self.inputs[color_id]])
            if total < colorvalue:
                msg = 'Not enough coins: %s requested, %s found!'
                raise InsufficientFundsError(msg % (colorvalue, total))
            return [cv_u[1] for cv_u in self.inputs[color_id]], total

        if colorvalue > self.our_value_limit:
            raise InsufficientFundsError("%s requested, %s found!"
                                         % (colorvalue, self.our_value_limit))
        return super(OperationalETxSpec, self).select_coins(colorvalue)
dataset/ETHPy150Open chromaway/ngcccbase/ngcccbase/p2ptrade/ewctrl.py/OperationalETxSpec.select_coins/original