#1 Ce contrat herite des fonctions declarees dans logger.sol
#3 View Functions: les fonctions de type view sont des méthodes permettant d’exécuter des opérations sans modifier l’état du contrat.
#3 Pure Functions: ce sont des types de fonctions qui ne lisent ni ne modifient l’état du contrat. Ex: une fonction qui prend en argument deux entiers et retourne leur produit. En général les fonctions mathématiques.
Vous devez mettre tous les exercices dans 1 unique repository qui est accessible depuis github.
Créez un nouveau repo sur github et créer le repo en local sur votre machine:
LE PROJET CONTENANT VOS EXERCICES NE DOIT PAS ÊTRE CREE AVEC DJINIT
Créez les fichiers SolidityCourse.sol et Logger.sol du cours de ce matin dans votre environment de travail sur remix
. Déployez les, et utilisez les.
Décrivez avec vos propres mots les fonctionnalités du smart contracts SolidityCourse
Attention lorsque vous déployez le contrat de vérifier que vous déployez bien le contrat SolidityCourse et non pas le contrat Logger
Ecrivez un smart contract Calc
qui sera définit dans le fichier Calc.sol
le contrat Calc
comportera 4 fonctions de calculs add
, sub
, mul
, div
qui prennent en paramètres 2 uint
et qui retournera l'opération de calcule appliquée à ces 2 uint
Il faudra mettre les bons paramètres de visibilité sur ces fonctions, et aussi les déclarer en fonction de leur accès aux données du smart contract (view
vs pure
vs rien)
Décrivez avec vos mots la différence entre une fonction déclarée comme pure
et une fonction déclarée comme view
En reprenant le contrat précédent, mettez une protection avec un require
ou un modifier
pour que ces opérations de calculs ne puissent être effectuées que par l'adresse de celui ou celle ou qui déployé le contrat.
Vérifiez bien, en utilisant remix
qu'une autre adresse que celle qui a deployé le smart contract n'a pas accès aux fonctions du smart contract.
Rajoutez des commentaires de types natspec
au smart contract précédent pour que l'on puisse générer une documentation technique de cette API de calcul.
voir: https://solidity.readthedocs.io/en/v0.7.0/natspec-format.html
Ecrivez un smart contract qui contient des fonctions qui retournent le maximum d'info sur l'utilisateur qui effectue la transaction, la transaction elle même et le bloc contenant cette transaction.
On peut imaginer des fonctions pour chacuns de ces élements ou une struct
qui contiendrait ces informations.
Aidez vous de: https://solidity.readthedocs.io/en/latest/cheatsheet.html#global-variables