code: def get_source_from_contracts_list(self, contracts):
          
          if contracts is None or len(contracts) == 0:
              return
          if isinstance(contracts[0], SolidityContract):
              self.source_type = "solidity-file"
              self.source_format = "text"
              for contract in contracts:
                  self.source_list += [file.filename for file in contract.solidity_files]
                  self._source_hash.append(contract.bytecode_hash)
                  self._source_hash.append(contract.creation_bytecode_hash)
          elif isinstance(contracts[0], EVMContract):
              self.source_format = "evm-byzantium-bytecode"
              self.source_type = (
                  "ethereum-address"
                  if len(contracts[0].name) == 42 and contracts[0].name[0:2] == "0x"
                  else "raw-bytecode"
              )
              for contract in contracts:
                  if contract.creation_code:
                      self.source_list.append(contract.creation_bytecode_hash)
                  if contract.code:
                      self.source_list.append(contract.bytecode_hash)
              self._source_hash = self.source_list
  
          else:
              assert False
docs: get the source data from the contracts list
          :param contracts: the list of contracts
          :return: