Sachverhalt:
Sachverhalt:
A. X._ wurde am 28. August 2003 wegen mehrfacher schwerer Widerhandlung gegen das Betäubungsmittelgesetz (BetmG, SR 812.121) sowie gegen das Bundesgesetz vom 26. März 1931 über Aufenthalt und Niederlassung der Ausländer (ANAG, SR 142.20) zu zweieinhalb Jahren Gefängnis verurteilt, abzüglich 142 Tage Untersuchungshaft. Zudem wurde er mit einer Landesverweisung von acht Jahren, unbedingt vollziehbar, belegt.
X._ erhob gegen dieses Urteil Berufung an das Kantonsgericht St. Gallen. Dieses wies die Berufung am 10. März 2004 ab und auferlegte ihm die Verfahrenskosten.
X._ erhob gegen dieses Urteil Berufung an das Kantonsgericht St. Gallen. Dieses wies die Berufung am 10. März 2004 ab und auferlegte ihm die Verfahrenskosten.
B. X._ führt mit Eingabe vom 26. Mai 2004 staatsrechtliche Beschwerde und beantragt die Aufhebung des Entscheides des Kantonsgerichts. Zudem stellt er das Gesuch um Gewährung der unentgeltlichen Rechtspflege.
Die Staatsanwaltschaft schliesst auf Abweisung der Beschwerde, soweit darauf einzutreten sei, das Kantonsgericht verzichtet auf eine Vernehmlassung.
Der Beschwerdeführer erhielt Gelegenheit zu einem zweiten Schriftenwechsel. Er bestritt die Ausführungen der Staatsanwaltschaft und verzichtete im Übrigen auf weitere Ausführungen.

Das Bundesgericht zieht in Erwägung:
Das Bundesgericht zieht in Erwägung:
1. 1.1 Der Beschwerdeführer ist durch den angefochtenen Entscheid in seinen rechtlich geschützten Interessen betroffen (Art. 88 OG). Er macht die Verletzung verfassungsmässig garantierter Rechte geltend (Art. 84 Abs. 1 lit. a OG). Dazu ist er legitimiert. Da auch die übrigen Sachurteilsvoraussetzungen erfüllt sind, ist auf seine staatsrechtliche Beschwerde grundsätzlich einzutreten.
1.2 Nach der Ansicht des Beschwerdeführers hat das Kantonsgericht die Akten im Zusammenhang mit der Frage, ob die Ausschaffungshaft an die Haftdauer anzurechnen sei, willkürlich gewürdigt. Das Kantonsgericht sei nur deshalb zum Schluss gelangt, die Ausschaffungshaft werde nicht an die Untersuchungshaft angerechnet.
Inwieweit der Beschwerdeführer damit Rechts- und inwieweit Tatfragen aufwirft, kann offen bleiben. Die angebliche Verletzung der Bestimmungen über die Anrechnung der Ausschaffungs- bzw. der Untersuchungshaft an die Dauer der Freiheitsstrafe (vgl. Art. 69 und 110 Abs. 7 StGB; Art. 13b ANAG) könnte im Verfahren der staatsrechtlichen Beschwerde jedenfalls nicht überprüft werden (vgl. Art. 84 Abs. 2 OG). Die Kritik am angefochtenen Entscheid wäre aber auch im Rahmen einer Nichtigkeitsbeschwerde unbegründet. Der Beschwerdeführer macht zu Unrecht geltend, der Untersuchungsrichter habe vom Ende der Ausschaffungshaft keine Kenntnis gehabt, weshalb der Umstand, dass er nicht wieder Untersuchungshaft angeordnet habe, nicht dagegen spreche, die Ausschaffungshaft als Ersatz für die Untersuchungshaft zu betrachten. Das Gegenteil ist der Fall und lässt auch die übrigen Einwände des Beschwerdeführers als unbegründet erscheinen. Die Dauer der Ausschaffungshaft ist von Gesetzes wegen zeitlich limitiert (vgl. Art. 13b Abs. 2 ANAG und die Praxis dazu: <ref-ruling> E. 4). Hätte der Untersuchungsrichter die Untersuchungshaft trotz der Ausschaffungshaft als notwendig erachtet, hätte er dafür gesorgt, den Beschwerdeführer erneut verhaften zu können. Dass der Untersuchungsrichter dies nicht getan hat, lässt durchaus den Schluss zu, die Untersuchungshaft wäre nicht mehr aufrechterhalten worden bzw. die Ausschaffungshaft sei nicht anstelle der Untersuchungshaft angeordnet worden.
Inwieweit der Beschwerdeführer damit Rechts- und inwieweit Tatfragen aufwirft, kann offen bleiben. Die angebliche Verletzung der Bestimmungen über die Anrechnung der Ausschaffungs- bzw. der Untersuchungshaft an die Dauer der Freiheitsstrafe (vgl. Art. 69 und 110 Abs. 7 StGB; Art. 13b ANAG) könnte im Verfahren der staatsrechtlichen Beschwerde jedenfalls nicht überprüft werden (vgl. Art. 84 Abs. 2 OG). Die Kritik am angefochtenen Entscheid wäre aber auch im Rahmen einer Nichtigkeitsbeschwerde unbegründet. Der Beschwerdeführer macht zu Unrecht geltend, der Untersuchungsrichter habe vom Ende der Ausschaffungshaft keine Kenntnis gehabt, weshalb der Umstand, dass er nicht wieder Untersuchungshaft angeordnet habe, nicht dagegen spreche, die Ausschaffungshaft als Ersatz für die Untersuchungshaft zu betrachten. Das Gegenteil ist der Fall und lässt auch die übrigen Einwände des Beschwerdeführers als unbegründet erscheinen. Die Dauer der Ausschaffungshaft ist von Gesetzes wegen zeitlich limitiert (vgl. Art. 13b Abs. 2 ANAG und die Praxis dazu: <ref-ruling> E. 4). Hätte der Untersuchungsrichter die Untersuchungshaft trotz der Ausschaffungshaft als notwendig erachtet, hätte er dafür gesorgt, den Beschwerdeführer erneut verhaften zu können. Dass der Untersuchungsrichter dies nicht getan hat, lässt durchaus den Schluss zu, die Untersuchungshaft wäre nicht mehr aufrechterhalten worden bzw. die Ausschaffungshaft sei nicht anstelle der Untersuchungshaft angeordnet worden.
2. 2.1 Der Beschwerdeführer hält dafür, das Kantonsgericht habe den aus der Unschuldsvermutung abgeleiteten Grundsatz "in dubio pro reo" als Beweiswürdigungsregel verletzt (<ref-law> und Art. 6 Ziff. 2 EMRK). Er sieht in der Tatsache, dass die Verurteilung wegen der Lagerung von Drogen und von Geld (Sachverhalt 5b) einzig auf den Aussagen des Zeugen Y._ beruht, eine willkürliche Verletzung der Beweiswürdigungsregel (<ref-law>).
2.2 Die Beweiswürdigung ist willkürlich (<ref-law>), wenn sie offen-sichtlich unhaltbar ist, mit der tatsächlichen Situation in klarem Widerspruch steht, auf einem offenkundigen Versehen beruht oder in stossender Weise dem Gerechtigkeitsgedanken zuwiderläuft. Dabei genügt es nicht, wenn der angefochtene Entscheid sich nur in der Begründung als unhaltbar erweist; eine Aufhebung rechtfertigt sich erst, wenn er auch im Ergebnis verfassungswidrig ist (<ref-ruling> E. 2.1, 49 E. 4, mit Hinweisen).
Gemäss <ref-law> sowie Art. 6 Ziff. 2 EMRK gilt jede angeschuldigte Person bis zur rechtskräftigen Verurteilung als unschuldig. Als Beweiswürdigungsregel besagt der aus der Unschuldsvermutung abgeleitete Grundsatz "in dubio pro reo", dass sich der Strafrichter nicht von einem für den Angeklagten ungünstigen Sachverhalt überzeugt erklären darf, wenn bei objektiver Betrachtung Zweifel bestehen, ob sich der Sachverhalt so verwirklicht hat. Die Maxime ist verletzt, wenn der Strafrichter an der Schuld des Angeklagten hätte zweifeln müssen. Dabei sind bloss abstrakte und theoretische Zweifel nicht massgebend, weil solche immer möglich sind und absolute Gewissheit nicht verlangt werden kann. Es muss sich um erhebliche und nicht zu unterdrückende Zweifel handeln, d.h. um solche, die sich nach der objektiven Sachlage aufdrängen. Bei der Frage, ob angesichts des willkürfreien Beweisergebnisses erhebliche und nicht zu unterdrückende Zweifel hätten bejaht werden müssen und sich der Sachrichter vom für den Angeklagten ungünstigen Sachverhalt nicht hätte überzeugt erklären dürfen, greift das Bundesgericht nur mit Zurückhaltung ein, da der Sachrichter diese in Anwendung des Unmittelbarkeitsprinzips zuverlässiger beantworten kann.
2.3 Das Kantonsgericht führte im angefochtenen Entscheid aus, weshalb es den Aussagen des Zeugen Glauben schenkte. Es bemerkte, der Zeuge habe an der Einvernahme vom 6. August 2003 von sich aus erzählt, wie er der Fahrradspur des Beschwerdeführers im Schnee gefolgt sei und das Versteck ("Bunker") mit den Drogen und dem Geld in der Nähe des ... ausgeräumt habe. Anlässlich der zweiten Einvernahme am gleichen Tag habe er diese Angabe präzisiert. Der Polizei gegenüber habe er diese Erklärung am 11. August 2003 nicht bestätigt. Dabei sei jedoch auffällig gewesen, wie er den Beschwerdeführer in Schutz genommen habe. Seine Ausführungen seien hilflos, ausweichend und unverbindlich gewesen. An der Einvernahme vom 14. August 2003 sei sodann deutlich geworden, dass der Zeuge vor dem Beschwerdeführer Angst habe. Er sei jedoch an der Konfrontationseinvernahme vom 15. August 2003 auf seine ursprünglichen Darlegungen zurückgekommen und habe die Frage, ob er den Bunker des Beschwerdeführers geleert habe, ausdrücklich bejaht. Daraufhin sei der Beschwerdeführer über ihn erbost. Der Zeuge habe diese Aussage an der Gerichtsverhandlung bestätigt und weiter detailliert. Seine Ausführungen erschienen glaubhaft, nachvollziehbar und schlüssig. Der Grund für die zwischenzeitlich abweichenden Angaben sei durch die Angst vor dem Beschwerdeführer erklärbar. Ob die beiden Personen, die ihn bedroht hätten, mit dem Beschwerdeführer in Verbindung standen, sei nicht nachgewiesen, könne letztlich aber offen bleiben. Demgegenüber erschien der Beschwerdeführer dem Kantonsgericht nicht gleichermassen glaubwürdig. Vorerst habe er nur zwei Tatvorwürfe eingestanden, drei weitere in erster Instanz hingegen abgestritten. In der Berufungseingabe habe er sodann diese drei Vorhalte anerkannt, um sie an der Berufungsverhandlung erneut abzustreiten. Aus seinen Äusserungen gehe allerdings hervor, dass ihm das Bunkern von Drogen nicht fremd sei. Dies habe er zudem in der Nähe des Ortes getan, an dem der Zeuge die Drogen gefunden habe.
2.4 Was der Beschwerdeführer gegen die Beweiswürdigung im angefochtenen Entscheid anführt, ist nicht geeignet, qualifizierte Zweifel an den Ausführungen des Kantonsgerichts und damit an seiner Schuld zu wecken. Das angefochtene Urteil erscheint im Ergebnis nicht als verfassungs- oder konventionswidrig.
2.4.1 Der Beschwerdeführer bringt vor, der Zeuge habe ihn zwischenzeitlich entlastet. Es sei nicht ersichtlich, weshalb das Kantonsgericht festhalte, der Zeuge habe dies nur getan, weil er vor ihm Angst gehabt habe.
Das Kantonsgericht stütze sich auf die Ausführungen des Zeugen. So erklärte dieser, er habe anderen Personen von seinem Fund erzählt. Der Beschwerdeführer habe davon erfahren und ihn zur Rede gestellt. An der Befragung vom 14. August 2003 erklärte er sein zwischenzeitliches Abweichen von der ersten Aussage ausdrücklich mit der Angst vor dem Beschwerdeführer. Er erkundigte sich namentlich, ob der Beschwerdeführer in Haft sei. Da er der einzige gewesen sei, der damals Drogen beim Beschwerdeführer bezogen habe, sei dieser darauf gekommen, dass er (der Zeuge) den Bunker geleert habe. Letztmals gab er seiner Angst zu Beginn der Verhandlung vor Kantonsgericht Ausdruck, als ihn der Vorsitzende nach dem Verhältnis zum Beschwerdeführer befragte.
Die Erwägung des Gerichts, der Zeuge habe vor dem Beschwerdeführer Angst gehabt, lässt sich somit an mehreren Aktenstellen nachlesen. Entgegen den Ausführungen des Beschwerdeführers liegt diesbezüglich klarerweise kein Widerspruch zwischen den Akten und dem angefochtenen Entscheid vor. Das Kantonsgericht hat gestützt darauf dargelegt, weshalb es die ersten und die letzten Ausführungen des Zeugen als glaubwürdig erachtete und weshalb es davon ausgegangen ist, der Zeuge habe aus Angst zwischenzeitlich seine Aussagen vom 6. August 2003 widerrufen. Von willkürlicher Beweiswürdigung kann nicht gesprochen werden.
2.4.2 Der Beschwerdeführer macht ferner geltend, wenn der Zeuge von zwei Personen wegen der Leerung des Bunkers bedroht worden sei, dränge sich auf, dass nicht er, sondern diese beiden Personen den Bunker benützt hätten. Das Kantonsgericht habe nicht in Erwägung gezogen, dass der Bunker auch einer anderen Täterschaft als dem Beschwerdeführer hätte zugeordnet werden können.
Dem ist entgegenzuhalten, dass der Zeuge detailliert geschildert hat, wie der Beschwerdeführer per Fahrrad zur Drogenübergabe erschienen sei. Er sei als einziger mit dem Fahrrad umhergefahren. Der Zeuge habe dem Beschwerdeführer anhand der Spuren im Schnee folgen können und so das Versteck gefunden. Es habe geschneit und im Schnee seien keine weiteren Spuren zu sehen gewesen. Das Gericht nahm zugunsten des Beschwerdeführers an, dass keine Verbindung zu den zwei Albanern oder Libanesen, welche den Zeugen bedroht haben, bestanden habe. Damit wollte es offenbar, wie die Staatsanwaltschaft zu Recht anführt, nur aussagen, es sei nicht erwiesen, dass der Beschwerdeführer jemanden beauftragt habe, den Zeugen einzuschüchtern. Der Schluss, der Bunker habe diesen beiden Personen gehört, drängt sich jedenfalls entgegen der Auffassung des Beschwerdeführers nicht auf. Für ihr Verhalten gibt es im Drogenhandelmilieu viele andere ebenso plausible Erklärungen. Dies will das Kantonsgericht offensichtlich mit der Erwägung zum Ausdruck bringen, die Aussage des Zeugen betreffend die Bedrohung und die Reaktion des Beschwerdeführers auf die Bunkerleerung müssten als "nicht eng verbundenes Folgegeschehen mit weiteren Akteuren" betrachtet werden. Dies stellt damit kein genügendes Indiz dafür dar, der Bunker habe den beiden Albanern bzw. Libanesen gehört, das die detaillierten und glaubwürdigen Schilderungen des Zeugen zu entkräften oder ernsthaft in Zweifel zu ziehen vermöchte.
2.4.3 Der Schluss des Kantonsgerichts, der Beschwerdeführer habe den besagten Bunker als Versteck benutzt bzw. es habe sich um seine Drogen und um sein Geld gehandelt, erscheint insgesamt nicht als willkürlich und verletzt auch den Grundsatz "in dubio pro reo" nicht. Entscheidend ist letztlich die Gesamtwürdigung der Beweise. Der Beschwerdeführer vermag keine erheblichen und nicht zu unterdrückenden Zweifel an deren Richtigkeit darzutun.
2.4.3 Der Schluss des Kantonsgerichts, der Beschwerdeführer habe den besagten Bunker als Versteck benutzt bzw. es habe sich um seine Drogen und um sein Geld gehandelt, erscheint insgesamt nicht als willkürlich und verletzt auch den Grundsatz "in dubio pro reo" nicht. Entscheidend ist letztlich die Gesamtwürdigung der Beweise. Der Beschwerdeführer vermag keine erheblichen und nicht zu unterdrückenden Zweifel an deren Richtigkeit darzutun.
3. Die staatsrechtliche Beschwerde erweist sich somit als unbegründet und ist abzuweisen, soweit darauf einzutreten ist.
Die Voraussetzungen zur Gewährung der unentgeltlichen Rechtspflege sind erfüllt (Art. 152 OG). Eine Gerichtsgebühr wird nicht erhoben (Art. 152 Abs. 1 OG). Dem Beschwerdeführer wird sein jetziger Verteidiger als amtlicher Verteidiger beigegeben. Dieser ist für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse angemessen zu entschädigen (Art. 152 Abs. 2 OG).

Demnach erkennt das Bundesgericht:
Demnach erkennt das Bundesgericht:
1. Die staatsrechtliche Beschwerde wird abgewiesen soweit darauf einzutreten ist.
1. Die staatsrechtliche Beschwerde wird abgewiesen soweit darauf einzutreten ist.
2. Dem Beschwerdeführer wird die unentgeltliche Rechtspflege gewährt:
2.1 Es werden keine Kosten erhoben.
2.2 Rechtsanwalt Dr. Duri Poltera wird als unentgeltlicher Rechtsvertreter ernannt und für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse mit einem Honorar von Fr. 1'500.-- entschädigt.
2.2 Rechtsanwalt Dr. Duri Poltera wird als unentgeltlicher Rechtsvertreter ernannt und für das bundesgerichtliche Verfahren aus der Bundesgerichtskasse mit einem Honorar von Fr. 1'500.-- entschädigt.
3. Dieses Urteil wird dem Beschwerdeführer, dem Staat und dem Kantonsgericht St. Gallen, Strafkammer, schriftlich mitgeteilt.
Lausanne, 1. Oktober 2004
Im Namen der I. öffentlichrechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber: