def get_tx_composer(self, op_tx_spec):
        if op_tx_spec.is_monocolor():
            color_def = op_tx_spec.get_targets()[0].get_colordef()
            if color_def == UNCOLORED_MARKER:
                return compose_uncolored_tx
            else:
                return color_def.compose_tx_spec
        else:
            # grab the first color def and hope that its compose_tx_spec
            # will be able to handle it. if transaction has incompatible
            # colors, compose_tx_spec will throw an exception
            for target in op_tx_spec.get_targets():
                tgt_color_def = target.get_colordef()
                if tgt_color_def is UNCOLORED_MARKER:
                    continue
                else:
                    return tgt_color_def.compose_tx_spec
            return None
Returns a function which is able to convert a given operational
dataset/ETHPy150Open chromaway/ngcccbase/ngcccbase/txcons.py/TransactionSpecTransformer.get_tx_composer