Faits :
A.
Le Tribunal correctionnel de l'arrondissement de Lausanne a, par jugement rendu le 5 mars 2014, reconnu X._ coupable d'infraction grave à la loi fédérale sur les stupéfiants, de séjour illégal, de blanchiment d'argent ainsi que de contravention à la loi fédérale sur les stupéfiants. Il l'a condamné à une peine privative de liberté ferme de 5 ans et à une amende de 300 fr.; il a en outre révoqué le sursis assortissant la peine de 30 jours-amende prononcée le 16 janvier 2009 contre X._.
B.
Par jugement du 23 juin 2014, la Cour d'appel pénale du Tribunal cantonal vaudois a admis partiellement l'appel formé par le condamné contre le jugement du Tribunal correctionnel, qu'il a modifié en fixant la durée de la peine privative de liberté à 4 ans, le jugement étant confirmé pour le surplus.
Les faits à l'origine de cette condamnation sont en substance les suivants.
B.a. Entre mai 2010 et son interpellation le 25 avril 2013, X._ s'est adonné à la vente de cocaïne, à Lausanne principalement. Durant cette période, il a vendu entre 180 et 200 boulettes pesant entre 0,6 et 0,7 g chacune. Il achetait les stupéfiants à d'autres vendeurs de rue et les revendait en faisant un bénéfice de l'ordre de 20 à 70 fr. par boulette. Au moment de son arrestation, il était en possession de 5,6 g de cocaïne conditionnée en boulettes destinées à la vente, ainsi que de 941 fr. 35 et 126 euros 35. Une perquisition au domicile de l'intéressé a abouti à la saisie, le même jour, de 4,8 g supplémentaires de cocaïne également destinée à la vente ainsi que de la somme de 7'200 francs.
B.b. Alors qu'il avait fait l'objet d'une décision de renvoi entrée en force le 23 mars 2009, X._ a résidé en Suisse de façon discontinue du mois de mai 2010, à tout le moins, jusqu'au jour de son interpellation.
B.c. Au cours des années 2011, 2012 et 2013, X._ a envoyé en Espagne et au Nigeria, par l'intermédiaire de sociétés de transfert d'argent, un montant de 1'590 fr. au moins provenant des bénéfices tirés de sa vente de cocaïne.
B.d. Durant l'année 2012, X._ a acquis deux voitures pour la somme de 2'200 fr., provenant de son trafic de stupéfiants. Ces véhicules ont été envoyés au Nigeria.
B.e. Entre novembre 2010 et la date de son interpellation, X._ a régulièrement consommé de la cocaïne.
C.
X._ forme un recours en matière pénale contre le jugement de la cour d'appel pénale. Il conclut, principalement, à l'annulation du jugement attaqué et à ce qu'il soit reconnu coupable d'infraction grave à la loi fédérale sur les stupéfiants ainsi que de contravention à ladite loi, libéré de tout autre chef d'accusation, condamné à une peine privative de liberté de 12 mois ferme, le sursis accordé le 16 janvier 2009 étant révoqué; il conclut en outre à sa libération immédiate et à la levée du séquestre prononcé en cours d'enquête. A titre subsidiaire, il conclut à l'annulation du jugement attaqué et au renvoi de la cause à la cour cantonale pour qu'elle statue à nouveau. Il sollicite par ailleurs l'assistance judiciaire.
Considérant en droit :
1.
En vertu de l'art. 42 al. 1 LTF, les mémoires de recours doivent être motivés. Conformément à l'art. 42 al. 2 LTF, les motifs doivent exposer succinctement en quoi l'acte attaqué viole le droit. Pour satisfaire à cette exigence, il appartient au recourant de discuter au moins brièvement les considérants de la décision litigieuse (ATF 139 I 306 consid. 1.2 p. 308 s. et l'arrêt cité). En outre, s'il entend se plaindre de la violation de ses droits fondamentaux, le recourant doit respecter le principe d'allégation et indiquer précisément quelle disposition constitutionnelle a été violée, en démontrant par une argumentation précise en quoi consiste la violation (art. 106 al. 2 LTF; ATF 138 V 67 consid. 2.2 p. 69).
2.
Le recourant qualifie l'établissement des faits et l'appréciation des preuves d'arbitraires.
Comme le relève le recourant, le jugement attaqué retient en fait qu'il a vendu, de mai 2010 au 25 avril 2013, entre 180 et 200 boulettes de cocaïne pesant entre 0,6 et 0,7 g chacune. Le recourant ne prétend pas que ces constatations auraient été admises de manière arbitraire ou à l'issue d'une appréciation arbitraire des preuves, soulignant au contraire qu'il n'y a aucune raison de prendre en compte un autre état de fait.
Pour le surplus, on saisit mal la portée du grief d'arbitraire dans l'établissement des faits dès lors que le recourant poursuit son argumentation pour le cas où le Tribunal fédéral ferait siens l'établissement des faits et l'appréciation des preuves opérés par le tribunal de première instance. Or, conformément à l'art. 105 al. 1 LTF, le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente et seul le jugement de cette dernière peut faire l'objet du recours en matière pénale au Tribunal fédéral (art. 80 al. 1 LTF). Ainsi, l'argumentation du recourant est irrecevable dans la mesure où elle est dirigée contre les faits établis par l'autorité de première instance. Comme par ailleurs le recourant ne montre pas, au moyen d'une argumentation répondant aux exigences de l'art. 106 al. 2 LTF, que les faits retenus par la cour cantonale auraient été établis en violation de l'interdiction de l'arbitraire, son grief est irrecevable.
3.
Le recourant affirme que la seule somme dont il est établi qu'elle a été transférée à l'étranger par envoi d'argent se monte à 391 fr. 73, qui peuvent provenir d'une activité lucrative légale et ne suffisent donc pas à fonder une condamnation pour blanchiment d'argent.
Ce grief repose entièrement sur une simple affirmation du recourant. Purement appellatoire, cette critique est également irrecevable (voir ATF 140 III 264 consid. 4.2 p. 266).
4.
Le recourant soutient que la peine qui lui a été infligée est excessive et doit être abaissée à 12 mois ferme, éventuellement 18 mois ferme.
Les règles générales régissant la fixation de la peine ont été rappelées dans les arrêts publiés aux ATF 136 IV 55 et 134 IV 17, auxquels il est renvoyé en relevant que le juge dispose d'un large pouvoir d'appréciation et que le Tribunal fédéral n'intervient au motif que le droit fédéral est violé que s'il a fixé une peine en dehors du cadre légal, s'il s'est fondé sur des critères étrangers à l'art. 47 CP, s'il a omis de prendre en considération des éléments d'appréciation prévus par cette disposition ou, enfin, si la peine qu'il a prononcée est exagérément sévère ou clémente au point de constituer un abus du pouvoir d'appréciation. S'agissant plus particulièrement de la peine à prononcer dans le cadre d'un trafic de stupéfiants, il est aussi fait référence aux arrêts 6B_107/2013 du 15 mai 2013 consid. 2.1.1 et 6B_921/2010 du 25 janvier 2011 consid. 2.1.
La cour cantonale a noté que bien qu'approximatives, les quantités de cocaïne vendues par le recourant restaient importantes. Elle a également admis qu'il ne représentait pas un échelon particulier dans une organisation. Il ressort par ailleurs de l'arrêt attaqué qu'il s'est adonné au trafic de stupéfiants pendant une durée de trois ans et n'a mis fin à son activité coupable qu'à la suite de son arrestation. Même si elle a pris en considération, à décharge du recourant, le fait qu'il consommait de la cocaïne, la cour cantonale a relevé qu'il avait agi par appât du gain. Elle n'a pas méconnu le fait qu'il avait exprimé des regrets; il n'apparaît toutefois pas qu'il aurait véritablement pris conscience de la gravité de ses actes. Par ailleurs, même s'il tente de les minimiser, force est de constater que les antécédents du recourant sont mauvais puisqu'il a fait l'objet, entre janvier 2009 et février 2011 de trois condamnations, l'une pour infraction à la LStup et opposition aux actes de l'autorité, les deux autres pour séjour illégal, ce qui ne l'a nullement dissuadé de récidiver. Enfin, l'infraction grave à la LStup dont il a à répondre entre en concours avec d'autres délits, à savoir le séjour illégal, le blanchiment d'argent et la contravention à la LStup.
Compte tenu de l'ensemble de ces circonstances, la cour cantonale n'a pas abusé de son pouvoir d'appréciation en qualifiant de lourde la culpabilité du recourant et c'est sans violer le droit fédéral qu'elle a fixé à 4 ans la durée de la peine privative de liberté à lui infliger.
5.
Le recourant se plaint d'une violation de son droit à un procès équitable ainsi que de son droit d'être entendu.
5.1. Conformément à l'art. 6 par. 3 let. d CEDH, tout accusé a le droit d'interroger ou de faire interroger les témoins à charge. Il s'agit d'un des aspects du droit à un procès équitable institué à l'art. 6 par. 1 CEDH qui exige, dans la règle, que les éléments de preuve soient produits en présence de l'accusé lors d'une audience publique, en vue d'un débat contradictoire. Cette garantie exclut ainsi, en principe, qu'un jugement pénal soit fondé sur les déclarations de témoins sans qu'une occasion appropriée et suffisante soit au moins une fois offerte au prévenu de mettre ces témoignages en doute et d'interroger les déclarants.
La cour cantonale a retenu en fait que le recourant avait vendu entre 180 et 200 boulettes de cocaïne pesant entre 0,6 et 0,7 g chacune. Ces quantités correspondent aux déclarations faites par le recourant devant cette autorité. Pour le surplus, elle a pris en considération les quantités de cocaïne et les montants trouvés sur le recourant lors de son interpellation ainsi que de la perquisition opérée à son domicile le jour même.
Il n'apparaît pas que le jugement attaqué se fonderait sur des déclarations dont le recourant prétend qu'elles auraient été administrées en violation de son droit à un procès équitable. De surcroît, le recourant n'indique pas à quelles personnes il entendait être confronté ni quelles questions il aurait souhaité leur poser, ne montrant a fortiori pas dans quelle mesure celles-ci seraient propres à influer sur le sort de la cause, de sorte que sa motivation ne satisfait pas aux exigences de l'art. 106 al. 2 LTF. Ce grief est irrecevable.
5.2. Outre que l'argumentation du recourant relative à une prétendue violation de son droit d'être entendu semble dirigée contre le jugement de première instance, elle ne remplit pas les conditions de motivation de l'art. 106 al. 2 LTF. Elle est irrecevable.
6.
Enfin, le recourant conclut à le levée du séquestre relatif à des objets et des sommes d'argent lui appartenant. Le terme de " séquestre " utilisé par le recourant est impropre dès lors que la cour cantonale a prononcé une confiscation. Quoi qu'il en soit, la conclusion prise n'est étayée par aucune motivation dans le mémoire. Elle est irrecevable.
7.
Le recours doit être rejeté dans la mesure où il est recevable. Comme les conclusions étaient vouées à l'échec, l'assistance judiciaire ne peut être accordée (art. 64 al. 1 LTF). Le recourant, qui succombe, supportera les frais de justice (art. 66 al. 1 LTF), dont le montant sera toutefois fixé en tenant compte de sa situation financière.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'600 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal vaudois.
Lausanne, le 16 juillet 2015
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Paquier-Boinay