code: def issue(self, issuance_spec, metadata, fees):
          
          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)
              ]
          )
docs: 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