Faits :
A.
Par jugement du 7 février 2019, le Tribunal pénal de l'arrondissement de la Gruyère a reconnu A._ coupable d'infraction à la loi fédérale sur les stupéfiants (art. 19 al. 2 let. a et c LStup), de délit contre la loi fédérale sur les armes (art. 33 al. 1 let. a LArm), de blanchiment d'argent (art. 305 bis CP) et d'infraction à la loi fédérale sur les étrangers (art. 116 al. 1 let. a aLEtr), l'a condamné à une peine privative de liberté de 42 mois, sous déduction de la détention avant jugement subie, l'a astreint à une créance compensatrice de 5'000 fr., a prononcé son expulsion obligatoire du territoire suisse pour une durée de cinq ans et a requis son signalement au SIS.
B.
Par arrêt du 31 août 2020, la Cour d'appel pénal du Tribunal cantonal du canton de Fribourg a partiellement admis l'appel formé par A._ et admis l'appel joint du Ministère public fribourgeois. En conséquence, elle a réformé le jugement attaqué, notamment, en ce sens qu'elle a condamné A._ à une peine privative de liberté de 54 mois, sous déduction de la détention avant jugement subie et de dix jours en compensation des mesures de substitution, ainsi qu'à une peine pécuniaire de 50 jours-amende à 10 fr. avec sursis pendant deux ans.
C.
Contre cet arrêt cantonal, A._ dépose un recours en matière pénale devant le Tribunal fédéral. Principalement, il conclut à la réforme de l'arrêt attaqué en ce sens qu'il est condamné à une peine privative de liberté, entièrement compensée par la détention avant jugement subie, ainsi qu'à une peine pécuniaire de 50 jours-amende à 10 fr. avec sursis pendant deux ans, qu'il est renoncé à prononcer son expulsion et qu'il est renoncé à donner son signalement au SIS. A titre subsidiaire, il requiert l'annulation de l'arrêt attaqué et le renvoi de la cause à la cour cantonale pour nouvelle décision. En outre, il sollicite l'assistance judiciaire.
Invité à se déterminer, le Ministère public fribourgeois a déposé des observations et conclu au rejet du recours. Le recourant a répliqué et le Ministère public fribourgeois a dupliqué. La cour cantonale a renoncé à déposer des observations.
Considérant en droit :
1.
Le recourant reproche à la cour cantonale d'avoir rejeté sa réquisition tendant à la production, par le ministère public, de l'intégralité des retranscriptions des conversations téléphoniques entre l'agent infiltré et lui-même, ainsi que sa réquisition tendant à la production, par le ministère public, de l'intégralité des messages écrits et des messages vocaux, avec leur retranscription, échangés entre l'agent infiltré et lui-même, notamment par le biais de l'application WhatsApp et se trouvant sur son téléphone portable et celui de l'agent infiltré. Il se plaint du fait qu'il n'a pas eu accès aux mêmes données brutes que l'accusation. Il dénonce la violation du principe de l'égalité des armes et du principe de l'équité.
1.1.
1.1.1. Compris comme l'un des aspects de la notion générale de procès équitable au sens de l'art. 29 Cst., le droit d'être entendu garantit notamment le droit pour l'intéressé de prendre connaissance du dossier et de participer à l'administration des preuves essentielles ou, à tout le moins, de s'exprimer sur son résultat lorsque cela est de nature à influer sur la décision à rendre (ATF 136 V 118 consid. 4.2.2 p. 125; 135 II 286 consid. 5.1 p. 293; 1B_273/2019 du 3 décembre 2019 consid. 2.1). Le prévenu doit pouvoir consulter le dossier pour connaître préalablement les éléments dont dispose l'autorité et jouir ainsi d'une réelle possibilité de faire valoir ses arguments dans une procédure. Pour que cette consultation soit utile, le dossier doit être complet (ATF 129 I 85 consid. 4.1 p. 88 s.). Dans une procédure pénale, cela signifie que les moyens de preuve doivent être disponibles dans les pièces de l'instruction, en tous cas lorsqu'ils ne sont pas présentés directement lors des débats devant le tribunal, et que les modalités de leur établissement doivent être décrites dans le dossier afin que l'accusé soit en mesure d'examiner s'ils ne présentent pas des vices relatifs à la forme ou au contenu et que, le cas échéant, il puisse soulever une objection contre leur validité (ATF 129 I 85 consid. 4.1 p. 88 s.).
1.1.2. Pour chaque procédure pénale, il y a lieu de constituer un dossier comprenant les procès-verbaux de procédure et des auditions, les pièces réunies par les autorités pénales ainsi que les pièces versées par les parties (art. 100 al. 1 CPP). Le dossier ainsi constitué servira de base au tribunal pour le jugement de l'affaire. Le devoir de documenter vaut à tous les stades de la procédure, à savoir même pendant les investigations policières préliminaires. Les documents concernant des recherches qui n'ont pas abouti doivent faire partie du dossier de la cause (arrêt 6B_403/2018 du 14 janvier 2019 consid. 2.3.1 publié in Pra 2019 71 713).
1.1.3. En matière d'enregistrement de conversations téléphoniques, les autorités pénales doivent trier les éléments pertinents à verser au dossier et extraire ceux qui ne le sont pas, afin d'éviter que les parties qui bénéficient d'un droit d'accès au dossier puissent prendre connaissance d'éléments qui sont dénués de pertinence, comme des conversations entre tiers n'ayant pas participé aux infractions, objets de la procédure. Les éléments non pertinents ne seront pas versés au dossier de procédure et devront être conservés séparément, puis détruits immédiatement après la clôture de la procédure (art. 276 al. 1 CPP). A l'inverse, les éléments pertinents seront versés à la procédure (art. 100 CPP). Devront ainsi figurer au dossier les enregistrements eux-mêmes et non uniquement leur retranscription ou la traduction de ceux-ci, afin de permettre aux parties d'en vérifier l'exactitude (JEANNERET/KUHN, Précis de procédure pénale, 2e éd. 2018, n° 14102). Ces enregistrements (c'est-à-dire notamment les enregistrements sur bande) doivent être considérés comme des preuves au sens de l'art. 192 CPP. Leurs retranscriptions correspondent à un rapport au sens des art. 145 ou 195 al. 1 CPP (SCHMID/JOSITSCH, Schweizerische Strafprozessordnung, Praxiskommentar, 3e éd., 2018, n° 2 ad art. 276 CPP). Selon la jurisprudence, le prévenu a le droit de consulter les éléments qui ne sont pas nécessaires à la procédure et qui sont conservés séparément (cf. art. 276 al. 1 CPP), conformément aux art. 101 ss CPP, afin de vérifier le triage effectué par les autorités pénales (arrêt 6B_403/2018 du 14 janvier 2019 consid. 2.3.3 et 2.3.4 publié in Pra 2019 71 713).
1.2. La cour cantonale a rejeté les réquisitions du recourant, dès lors que les pièces requises figuraient au dossier et que le recourant pouvait les consulter.
Elle a expliqué que, hormis les contacts physiques, le recourant et l'agent infiltré avaient communiqué uniquement par l'intermédiaire de l'application WhatsApp. Pour retenir ce fait, elle s'est fondée sur les déclarations faites par le recourant à la police le 3 juillet 2017 (pièce 2128, lignes 150 ss).
Les retranscriptions des messages écrits WhatsApp ainsi que les messages vocaux WhatsApp figurent au dossier aux pièces 8319 ss et 8323.
Des conversations téléphoniques ont également eu lieu entre le recourant et l'agent infiltré par l'application WhatsApp. Se référant à une lettre du représentant du ministère public, la cour cantonale a expliqué qu'il était en 2017 techniquement impossible de surveiller les conversations téléphoniques WhatsApp. Il n'existe donc aucun enregistrement de quelque conversation téléphonique que ce soit entre l'agent infiltré et le recourant. Les conversations téléphoniques WhatsApp ont toutefois été rapportées dans le rapport d'investigation de l'agent infiltré sur la base des notes prises par ce dernier après chacun de ses contacts avec le recourant. Le résumé de ces conversations figure aux pièces 8314 à 8318.
1.3.
1.3.1. Le recourant conteste avoir communiqué avec l'agent infiltré uniquement par l'application WhatsApp. Il fait valoir qu'il a également utilisé le téléphone ordinaire et les messages SMS et que ces données devraient figurer au dossier. A l'appui de son grief, il relève que les échanges WhatsApp ne font pas état de certains rendez-vous (heure et/ou lieu), ce qui établirait qu'il a eu des contacts avec l'agent infiltré par téléphone ordinaire ou SMS. Il se réfère également à un prétendu message SMS du 28 mars 2017, par lequel l'agent infiltré lui fait savoir que la marchandise était de bonne qualité.
L'argumentation du recourant doit être rejetée. En effet, les rendez-vous entre le recourant et l'agent infiltré ont pu être fixés lors de conversations téléphoniques WhatApp non enregistrables ou lors de rencontres physiques. S'agissant du message du 28 mars 2017, un message WhatsApp fixe le rendez vous à " mardi prochain " (pièce 8320); selon les observations du ministère public, l'agent infiltré a dit que la marchandise était bonne lors d'un échange téléphonique WhatsApp. Enfin, il ressort du dossier que le téléphone portable du recourant avait été mis sous surveillance téléphonique, mais qu'aucune conversation entre le recourant et l'agent infiltré n'a pu être écoutée, enregistrée ou répertoriée, ce qui montre que les intéressés ont communiqué uniquement par WhatsApp (cf. en revanche les nombreuses retranscriptions avec les autres protagonistes de cette affaire). En définitive, le recourant n'apporte aucun élément qui permettrait d'établir qu'il a communiqué avec l'agent infiltré par d'autres canaux que l'application WhatsApp et que les autorités de poursuite pénale auraient caché des données.
1.3.2. Le recourant reproche à la cour cantonale de lui avoir refusé l'accès physique à son téléphone portable et à celui de l'agent infiltré. Il soutient que le journal des appels des téléphones portables précités permettrait de démontrer qu'il discutait avec l'agent infiltré par le téléphone ordinaire. Comme vu ci-dessus, le recourant n'a fourni aucun indice donnant à penser que le recourant et l'agent infiltré communiquaient par d'autres canaux que l'application WhatsApp. En tout état de cause, des copies des contenus des téléphones portables ont été faites et figurent au dossier aux pièces 8319 ss et 8323. Pour des questions de sécurité et de préservation des preuves, l'accès physique au téléphone portable ne peut pas être donné aux parties, le risque de destruction de données étant trop important.
1.4. Au vu de ce qui précède, il faut admettre que le dossier est complet. Il contient la retranscription des messages écrits WhatsApp, l'enregistrement des messages oraux WhatsApp et un résumé des conversations téléphoniques WhatsApp. Le recourant n'apporte aucun élément crédible donnant à penser qu'il aurait communiqué avec l'agent infiltré par un autre canal que l'application WhatsApp et que les autorités de poursuite pénale auraient caché des données. Le recourant a pu consulter le dossier. Il a ainsi eu accès aux mêmes données que l'accusation, de sorte que les principes d'égalité des armes et de l'équité n'ont pas été violés.
2.
Le recourant dénonce la violation du principe de l'accusation.
2.1. L'art. 9 CPP consacre la maxime d'accusation. Selon cette disposition, une infraction ne peut faire l'objet d'un jugement que si le ministère public a déposé auprès du tribunal compétent un acte d'accusation dirigé contre une personne déterminée sur la base de faits précisément décrits. En effet, le prévenu doit connaître exactement les faits qui lui sont imputés et les peines et mesures auxquelles il est exposé, afin qu'il puisse s'expliquer et préparer efficacement sa défense (ATF 143 IV 63 consid. 2.2 p. 65; 141 IV 132 consid. 3.4.1 p. 142 s.). Le tribunal est lié par l'état de fait décrit dans l'acte d'accusation (principe de l'immutabilité de l'acte d'accusation), mais peut s'écarter de l'appréciation juridique qu'en fait le ministère public (art. 350 al. 1 CPP), à condition d'en informer les parties présentes et de les inviter à se prononcer (art. 344 CPP). Le principe de l'accusation découle également des art. 29 al. 2 Cst. (droit d'être entendu), 32 al. 2 Cst. (droit d'être informé, dans les plus brefs délais et de manière détaillée des accusations portées contre soi) et 6 par. 3 let. a et b CEDH (droit d'être informé de la nature et de la cause de l'accusation).
Les art. 324 ss CPP règlent la mise en accusation, en particulier le contenu strict de l'acte d'accusation. Selon l'art. 325 CPP, l'acte d'accusation désigne notamment les actes reprochés au prévenu, le lieu, la date et l'heure de leur commission ainsi que leurs conséquences et le mode de procéder de l'auteur (let. f); les infractions réalisées et les dispositions légales applicables de l'avis du ministère public (let. g). En d'autres termes, l'acte d'accusation doit contenir les faits qui, de l'avis du ministère public, correspondent à tous les éléments constitutifs de l'infraction reprochée au prévenu (ATF 143 IV 63 consid. 2.2 p. 65; arrêt 6B_665/2017 du 10 janvier 2018 consid. 1.1). Des imprécisions relatives au lieu ou à la date sont sans portée, dans la mesure où le prévenu ne peut avoir de doute sur le comportement qui lui est reproché (arrêts 6B_696/2019 du 24 septembre 2019 consid. 1.2.1; 6B_275/2016 du 9 décembre 2016 consid. 2.1 et la référence citée).
2.2.
2.2.1. L'acte d'accusation du 6 août 2018 prévoit ce qui suit, sous le titre " détention d'une arme sans droit ":
" Il est reproché à A._ d'avoir commis les faits suivants: Le 13 avril 2017, il était en possession d'un revolver de marque ASTRA (...), avec une crosse en bois, d'une boîte complète de 50 cartouches de calibre 7.65 et de 44 cartouches de calibre 38 special, à son domicile, à B._. Il avait acquis cette arme entre 2007 et 2009, auprès d'un compatriote dénommé " C._ " à D._. Il n'était pas au bénéfice d'un permis d'acquisition d'arme ".
2.2.2. La cour cantonale a constaté que l'action pénale du délit d'acquisition de l'arme litigieuse était prescrite. Elle a retenu que l'acquisition avait eu lieu avant le 12 décembre 2008, de sorte que le délai de prescription de sept ans était échu au moment du jugement de première instance du 7 février 2019. Elle a considéré que, comme le recourant était un ressortissant macédonien, il faisait l'objet d'une interdiction absolue d'acquisition et de port d'armes et de munition depuis 1998 déjà (art. 9 al. 1 let. d de l'ordonnance sur les armes, les accessoires d'armes et les munitions du 21 septembre 1998 [RO 1998 2549] et art. 12 al. 1 let. f de l'ordonnance sur les armes, les accessoires d'armes et les munitions du 2 juillet 2008 [RS 514.541]). Elle a conclu que, comme la possession d'une arme et de munitions était un délit continu, ce délit n'était pas prescrit au moment du jugement du 7 février 2019, et elle a donc confirmé la condamnation du recourant pour délit contre la loi fédérale sur les armes (cf. art. 33 al. 1 let. a LArm) (arrêt attaqué p. 13 s.).
2.2.3. Sous le titre " détention d'une arme sans droit ", l'acte d'accusation expose que le recourant a acquis l'arme en question d'un compatriote et n'était pas au bénéfice d'un permis d'acquisition d'arme. Il reproche ainsi au recourant de ne pas avoir respecté les conditions d'acquisition d'armes figurant dans la LArm. En punissant le recourant pour détention illicite d'arme en relation avec sa nationalité et en se référant à l'OArm, la cour cantonale s'écarte de l'acte d'accusation et viole le principe d'accusation. Le recours doit donc être admis sur ce point.
3.
Le recours doit être partiellement admis, l'arrêt attaqué annulé et la cause renvoyée à la cour cantonale pour qu'elle rende une nouvelle décision dans le sens des considérants. Vu le sort du recours, il n'y a pas lieu d'examiner les griefs soulevés par le recourant en relation avec la fixation de la peine, qui devra être révisée dans le cadre du renvoi.
Le recourant obtient partiellement gain de cause. Dans cette mesure, il peut prétendre à des dépens réduits à la charge du canton. La requête d'assistance judiciaire est pour cette partie sans objet. Pour la partie du recours qui est rejetée, l'assistance judiciaire doit être admise et une indemnité accordée à son mandataire, désigné comme avocat d'office.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis, l'arrêt attaqué est annulé et la cause est renvoyée à la cour cantonale pour nouvelle décision. Pour le surplus, le recours est rejeté.
2.
La demande d'assistance judiciaire est admise dans la mesure où elle n'est pas sans objet.
3.
Le canton de Fribourg versera au conseil du recourant une indemnité de 1'500 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
4.
Me Fabien Morand est désigné comme défenseur d'office du recourant et une indemnité de 1'500 fr., supportée par la Caisse du Tribunal fédéral, lui sera allouée à titre d'honoraires.
5.
Il n'est pas perçu de frais judiciaires.
6.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal de l'Etat de Fribourg, Cour d'appel pénal.
Lausanne, le 7 juillet 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
La Greffière : Kistler Vianin