Creates a transaction for issuing an asset.

        :param TransferParameters issuance_spec: The parameters of the issuance.
        :param bytes metadata: The metadata to be embedded in the transaction.
        :param int fees: The fees to include in the transaction.
        :return: An unsigned transaction for issuing an asset.
        :rtype: CTransaction

def issue(self, issuance_spec, metadata, fees):
        """
        Creates a transaction for issuing an asset.

        :param TransferParameters issuance_spec: The parameters of the issuance.
        :param bytes metadata: The metadata to be embedded in the transaction.
        :param int fees: The fees to include in the transaction.
        :return: An unsigned transaction for issuing an asset.
        :rtype: CTransaction
        """
        inputs, total_amount = self._collect_uncolored_outputs(
            issuance_spec.unspent_outputs, 2 * self._dust_amount + fees)

        return bitcoin.core.CTransaction(
            vin=[bitcoin.core.CTxIn(item.out_point, item.output.script) for item in inputs],
            vout=[
                self._get_colored_output(issuance_spec.to_script),
                self._get_marker_output([issuance_spec.amount], metadata),
                self._get_uncolored_output(issuance_spec.change_script, total_amount - self._dust_amount - fees)
            ]
        )