aikoz Profile picture
Apr 6 20 tweets 8 min read
1/ [thread]
Yop suite au thread d'hier on va maintenant apprendre à mettre notre contrat en ligne et à le vérifier sur #hardhat !
2/ Donc on va aller dans le fichier "hardhat.config.js" à la racine de notre dossier. On devrait avoir une page comme sur le screen.

là rien d'affolant on voit juste un json avec la version par défaut dans laquelle est compilé #solidity par hardhat est en 0.8.4 Image
3/Sur le screen ci dessous on peut voir que j'ai rajouté plusieurs ligne, on va comprendre à quoi elles servent.

Donc tout d'abord on peut voir que pour la configuration de solidity j'ai modifié la version et rajouter le paramètres settings, je l'ai mis en enabled et en run:200 Image
Le code est disponible ici:

sharemycode.fr/cs1
4/Le paramètre run est à configurer selon si c'est un contrat qui va être beaucoup utiliser ou beaucoup déployer, plus le nombre est bas plus le cout de déploiement est moindre mais le cout des fonctions vont l'être et inversement si le nombre est haut
La valeur par defaut = 200
5/ Ensuite on a le path pour modifier la valeur par défaut de différent fichier:

sources: dossier ou sont stocker les contrats qui vont être compilé
tests: dossier ou il y a un fichier de test unitaire
cache: là ou est stocké le cache
artifacts: là ou sont stocké les abi /!\ Image
6/ Les abi sont importantes on verra après pourquoi.

Donc ensuite après le path on a la partie networks on peut voir que j'ai ajouté un réseau rinkeby (on va l'appeler via terminal après), elle a besoin de l'url de RPC ( celle que vous rentrez dans metamask pour add un réseau).
7/ Pour rinkeby c'est différent, il faut d'abord aller sur infora.io, s'inscrire et vous connectez.

à partir de là aller dans new project en haut à droite vous choisissez ethereum,
Ensuite vous aurez une case avec marqué "MAINNET"
Vous la remplacé par rinkeby. Image
8/ Vous devriez voir un lien commençant par:
rinkeby.infura.io/v3

Vous la copiez et la collé à côté à coté de url:
Ensuite pour l'accounts rien de plus simple vous allez sur metam@sk vous prenez votre clé privé et vous la collez dans le tableau.
9/ A partir de là on peut presque déployer notre contrat !
Mais avant ça il va nous falloir des ether sur rinkeby si vous n'en n'avez pas,
Rendez vous sur : faucets.chain.link/rinkeby

Vous connectez votre compte au site et vous faite une requête de eth
Vous devriez en recevoir 0.1 Image
10/ On va maintenant déployer le contrat
Pour cela on va entrer dans le terminal:

npx hardhat run .\scripts\sample-script.js --network rinkeby

Et hop! Votre contrat est en ligne via rinkeby Image
11/ Vous pouvez voir que seul le débogage du fichier js marche et non celui sur le contrat qui ne fonctionne uniquement qu'en local.

Vous pouvez voir votre contrat en renseignant l'adresse sur le etherscan de test:
rinkeby.etherscan.io/address/0x777a…
12/ Sur la page nous constatons que les appels de fonction sont automatisés sur l'onglet transaction. Image
13/ Le soucis est sur la page contrat, nous ne voyons ni le code, ni l'onglet "read functions" and "write functions".

Pour afficher cela il nous faut valider le contrat.
Pour cela allez sur : etherscan.io

Créez vous un compte, aller dans les paramètre puis apy key Image
14/ Après l'avoir créé, retournez dans le fichier hardhat.config.js et collez le après etherscan.

Pour pouvoir utilisé etherscan il va nous falloir la librairies, pour l'avoir entrez cette commande dans le terminal:

npm i @nomiclabs/hardhat-etherscan
15/ Une fois téléchargé ajoutez: require('@nomiclabs/hardhat-etherscan'); en haut notre hardhat.config.js Image
16/ C'est bon on peut vérifier notre contrat,
Pour cela entrez cette commande

npx hardhat verify --network rinkeby XXXX

le XXXX est à changer par l'adresse de votre contrat précédemment créé.

Vous devriez voir apparaitre ceci : Image
17/ Si on va sur l'url donné nous pouvons voir que le code est accessible, et les appels de fonction via interface aussi !

Vous avez aussi l'abi en bas dans l'onglet "code" ImageImageImage
18/ Bonus:
L'abi ça sert à quoi?

L'abi est un json ou sont renseigner les paramètres des fonctions etc.
C'est grâce à ça qu'on peut appeler nos fonction via le fichier sample-script.js, vérifier le contrat et le faire communiqué avec notre site.
19/ J'espere que ce second thread vous aura plus :)

J'hésite encore pour le sujet du prochain mais on va continuer d'apprendre des choses autours de ce projet, qui au fur et à mesure sera un projet 100% fonctionnel à la fin

• • •

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

Keep Current with aikoz

aikoz 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 @Aikoz93

Apr 13
1/ [Thread] Projet solidity partie 5💻:
Aujourd'hui on va upload les metadata de nos nft
2/ Tout d'abord les metadata d'un nft c'est quoi?

Les metadata sont les données que le smart contract attribue à un nft, cela comprend l'image, le nom, les attributs du nft, etc
On va donc voir comment ça marche ci dessous
3/ Donc en reprenant notre contrat du thread partie 4, on avait pu créer des nft, on va donc implémenter la fonction tokenURI, cette fonction permet de récupérer le lien d'un fichier json ( ou le json sans passer par un fichier)
json: format de fichier pour passer des données
Read 14 tweets
Apr 13
1/ [Thread]
Hier j'ai utilisé les fonctions sur le contrat depuis etherscan ( pour avoir des nft avec un id faible) sur @KujiraNoKonton car le site n'était dispo que pour les freemint pendant les 5 premières minutes, on va voir comment ça fonctionne en détail 🔽
2/ Donc comment je déjà pour savoir quel fonction je vais utiliser, je check les différentes fonctions de mint
étant donné que j'ai la wl regular, je sais que j'avais 3 mint à -10%, donc je regarde les lignes avec le numberMinted() et je vois que la fonction wlMint est limité à 3
3/ Je commence à bien analysé la fonction et les require pour voir si la tx comment faire passer la tx.

Donc déjà si on regarde la première ligne, on remarque qu'il faut que la variable public sale open soit à true, je vais check son état et bingo elle est à true
Read 11 tweets
Apr 11
1/ [Thread] Projet solidity partie 4💻:

Aujourd'hui on va créer un constructor et voir à quoi ça sert puis pour finir nos players vont devenir des #nft via l'implémentation du contrat ERC721 Image
2/ Donc tout d'abord on va voir à quoi sert le constructor et comment l'implémenter.

Le constructor c'est une 'instance d'initialisation', pour faire simple c'est une sorte de fonction par laquelle lorsque le contrat est mis en ligne va obligatoirement passer dedans au début
3/ Pour que ça vous parle un peu plus j'ai créé un constructor prenant 2 paramètres et appelant 2 fois la fonction pour créer des players, lors de son exécution. Image
Read 13 tweets
Apr 7
1/ [Thread] Projet solidity partie 3💻 :

Maintenant qu'on a vu comment bien utiliser l'environnement de test, on va pouvoir commencer à apprendre les particularités de #Solidity.

Aujourd'hui on va comprendre les modifiers et le mapping Image
2/Donc on reprend le contrat qu'on a commencé au thread 1 ( sur les test et le débogage sur hardhat ).

On à du coup notre contrat qui doit ressembler à ça: ⏬ Image
3/ A la ligne 14 nous pouvons voir un mapping, c'est en fait un tableau tout simple avec une clé qui relie une valeur.
Par exemple dans le mapping utilisé dans notre contrat nous pouvons voir qu'un nombre relie un player qui est une structure, on verra ça dans le prochain thread
Read 14 tweets
Apr 6
1/Hello, voici un petit thread dans lequel je vais vous présenter comment faire du débogage avec hardhat et comment automatiser ses tests.
2/Tout d'abord Hardhat c'est quoi?
Hardhat est une librairie permettant d'upload des contrats ainsi qu'automatiser les tests.
3/Les prérequis:

Pour suivre ce tutoriel, vous n'aurez besoin que de node js ( et d'un ide comme visual studio code) .
Lien pour nodejs: nodejs.org/en/
Lien pour visual studio code: code.visualstudio.com
Read 20 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!

:(