Faits: Faits: A. X._, ressortissant albanais, a été interpellé le 17 novembre 2004 par la police genevoise alors qu'il s'apprêtait à quitter la Suisse, en possession d'une importante somme d'argent provenant d'un trafic d'héroïne. Il a été entendu le jour même par la police judiciaire, puis le lendemain par le Commissaire de police. A l'issue de son audition, soit à 14h41, il a été écroué et mis à la disposition du juge du Tribunal de la jeunesse du canton de Genève, dans la mesure où il était présumé être mineur. Le 19 novembre 2004, à 10h52, le juge suppléant dudit tribunal l'a entendu, puis l'a inculpé d'infractions à la loi fédérale sur les stupéfiants et à la loi fédérale sur le séjour et l'établissement des étrangers. X._ ayant déclaré être né le 2 février 1983, ce magistrat s'est dessaisi de la procédure en faveur de l'autorité pénale compétente pour les justiciables majeurs. Le Juge d'instruction genevois a entendu le prévenu le même jour, à 14h35. A l'issue de l'audition, soit à 15h10, il a décerné un mandat d'arrêt. La Chambre d'accusation du canton de Genève (ci-après: la Chambre d'accusation ou la cour cantonale) a régulièrement ordonné la prolongation de la détention préventive de X._. Le 29 juillet 2005, ce dernier a demandé sa mise en liberté provisoire en invoquant principalement la nullité du mandat d'arrêt. Par ordonnance du même jour, la Chambre d'accusation a refusé la requête. Elle a estimé en substance que le mandat d'arrêt était valable étant donné que X._ avait été mis à la disposition du juge d'instruction dans les vingt-quatre heures qui ont suivi l'exécution du mandat d'amener. Elle a justifié le maintien en détention par la gravité des infractions reprochées au prévenu et par l'existence d'un risque de fuite. Le 29 juillet 2005, ce dernier a demandé sa mise en liberté provisoire en invoquant principalement la nullité du mandat d'arrêt. Par ordonnance du même jour, la Chambre d'accusation a refusé la requête. Elle a estimé en substance que le mandat d'arrêt était valable étant donné que X._ avait été mis à la disposition du juge d'instruction dans les vingt-quatre heures qui ont suivi l'exécution du mandat d'amener. Elle a justifié le maintien en détention par la gravité des infractions reprochées au prévenu et par l'existence d'un risque de fuite. B. Agissant par la voie du recours de droit public, X._ demande au Tribunal fédéral d'annuler cette décision et d'ordonner sa libération immédiate. Il dénonce une violation des art. 9, 10 al. 2 Cst., 5 CEDH et 15 al. 3 de la Constitution genevoise (Cst. gen.). Il requiert l'assistance judiciaire. La Chambre d'accusation se réfère aux considérants de sa décision. Le Procureur général du canton de Genève conclut au rejet du recours. Invité à répliquer, X._ a maintenu ses conclusions.