0xNekr.eth Profile picture
Dec 14 15 tweets 5 min read
[#CALENDRIER DE L'AVENT 14/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 14 / 25 :

Création #ERC721 : Finalisation du contrat ERC721... le mint ! 🔥

🧵
Dernière étape de notre contrat ERC721 ! Mais pas des moindres... la fonction de mint !

Elle doit regrouper pas mal de mécanismes pour gérer toutes les phases, nous allons la décortiquer !
Avant tout, si vous n'avez pas fait les jours précédents, vous pouvez récupérer le contrat à jour dans le dossier "contracts/Jour14". Image
La fonction de mint est la fonction que vont appeler les utilisateurs pour créer le NFT !

Comme nous utilisons une fonction unique, il faut qu'elle puisse gérer les différentes phases (whitelist/public), et les différentes restrictions qui vont avec !

Décortiquons ça ! 🔍 Image
Mais avant, voici comme va fonctionner le mint :

Deux phases possibles, whitelist ou public.

En whitelist : 1 seul mint par personne.
En public : autant que souhaité (jusqu'au max supply).
Commençons par la définition.

La fonction "mint" est donc externe et payable car elle ne sera jamais appelée que depuis l'extérieur et elle doit pouvoir recevoir de l'argent.

Elle prend en argument la preuve de Merkle de la whitelist, ainsi que le nombre de NFT souhaité! Image
On définit un "require" qui empêche d'utiliser la fonction si nous ne sommes pas dans la phase de whitelist ou public.

On récupère le prix grâce à notre fonction "getCurrentPrice".

On récupère le nombre déjà minté en récupérant l'ID du dernier mint grâce à "_tokenIds.current". Image
Place à ce que nous devons faire en phase de whitelist :

Un require pour être sur que l'utilisateur est WL grâce à "isWhitelisted".

Un require pour être sur que l'utilisateur mint une seule fois.

Un require pour être sur que la supply "whitelist" n’est pas épuisée. Image
Pour finir avec les require :

Un pour être sur que le nombre de mint actuel + le nombre que souhaite acheter la personne ne dépasse pas la "maxSupply".

Un dernier pour être sur que la personne a bien envoyé assez d'argent, donc "prix x nombres de NFT" ! Image
Une fois que tout est vérifié, il ne reste plus qu'à réaliser une boucle "for" qui va exécuter autant de fois que de NFT voulu les étapes suivantes :

- Récupération du token ID actuel
- Création du token
- Incrémentation (+1) du compteur "_tokenIds"

Puis on déclenche l'évent ! Image
Et j'ai l'impression qu'on peut officiellement déclarer notre premier contrat ERC721 terminé !

Vous pouvez êtes fier de vous si vous avez tenu jusqu'ici (attention, ce n’est pas fini !)

C'est un beau premier bébé eheh !
Je vous conseille d'aller tester tout ça sur remix.ethereum.org

Vous pouvez directement déployer votre contrat sur la blockchain depuis cet outil !

J'ai déjà créé un thread sur comment tester un contrat comme ceci, je vous laisse le lire pour le faire vous-même !
Si vous avez des soucis pour tester, ma version du contrat est disponible dans le répertoire "solutions/NekrIsERC721.sol" 🔥
Et c'est déjà fini pour aujourd'hui !

Dès demain on attaque sur la partie token ERC20 !

On va commencer par rappeler ce qu'est la norme et ses spécificités avant de commencer un contrat token !

Vous verrez, ce contrat sera bien plus simple que celui d'ERC721 ! 🔥

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with 0xNekr.eth

0xNekr.eth Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @0xNekr

Dec 16
[#CALENDRIER DE L'AVENT 16/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 16 / 25 :

Création #ERC20 : Nous allons créer notre premier token ERC20 ! Et tout ceci en une seule journée 🔥

🧵
Il est possible de faire des contrats de token ERC20 plus ou moins complexe !

Comme nous réalisons un token utilitaire qui sert de récompense de staking, il va être extrêmement simple à mettre en place !

On pourrait imaginer qu'il serve dans une marketplace de jeu par exemple.
Read 13 tweets
Dec 15
[#CALENDRIER DE L'AVENT 15/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 15 / 25 :

La norme #ERC20 : Qu'est-ce que la norme ERC20 ? À quoi sert-elle ? C'est ce que nous allons voir aujourd'hui 💸

🧵
La norme ERC20 est une norme pour définir les contrats intelligents des jetons fongibles.

À l'inverse d'un NFT (ERC721), ERC20 permet de créer des jetons qui sont échangeables en 1:1 car ils ont exactement tous la même valeur !
À titre d'exemple, le "stable coin" #USDT est un token fongible dont le contrat est disponible sur plusieurs blockchain.

etherscan.io/token/0xdac17f…

Il est impossible de différencier 1 USDT d'un autre sur le même contrat, c'est pour ça qu'on les appelle des jetons fongibles !
Read 11 tweets
Dec 13
[#CALENDRIER DE L'AVENT 13/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 13 / 25 :

Création #ERC721 : Comment gérer les métadonnées ? Est-ce que les métadonnées sont immuables ? Développons ça !

🧵
Dans le thread précédent, nous avons appréhendé le système d'Arbre de Merkle, c'est un gros sujet quand on parle de cryptomonnaie.

Le deuxième gros sujet, plus spécifique aux NFTs, ce sont les métadonnées... mais qu'est-ce que c'est ?
Read 24 tweets
Dec 4
[#CALENDRIER DE L'AVENT 4/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 4 / 25 :

Comprendre les imports et les variables !

Vous aurez aussi un exercice.

🧵
Nous allons désormais passer par une petite phase de “cours théorique” sur les différents points de la programmation Solidity.

Mon but est de vous donner les bases pour que vous puissiez bien comprendre ce que nous allons réaliser par suite.
Read 12 tweets
Dec 3
[#CALENDRIER DE L'AVENT 3/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 3 / 25 :

Développons, testons et déployons notre premier contrat !

Après cette journée, vous saurez déjà déployer un contrat sur la blockchain 🤟

🧵
Hier nous avons créé notre environnement de développeur.

Nous avons maintenant un projet “Hardhat” ainsi qu’un IDE qui va nous permettre d’éditer notre code.

Tout est installé sur notre projet pour développer les contrats, réaliser des tests et déployer notre contrat !
Read 17 tweets
Dec 2
[#CALENDRIER DE L'AVENT 2/25]

25 jours pour apprendre à développer des Smart Contracts en #Solidity 🔥

Jour 2 / 25 :

Aujourd'hui, nous allons créer notre environnement de développement !

🧵
Tout développeur a besoin d’un environnement pour développer, et il est important d’utiliser des outils avec lesquels vous vous sentirez à l’aise.

C’est sûrement une des étapes les plus longues à mettre en place, mais une fois que c’est fait, on est tranquille pour un moment.
Read 24 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(