Découvrons ensemble, pas à pas, comment il est possible de développer un contrat-wallet, un Smart Contract qui peut agir comme un portefeuille standard. Dans un premier temps, nous allons découvrir comment gérer le fait de pouvoir recevoir des Ethers, de savoir combien d’Ether le contrat possède, et surtout, de faire en sorte que seul le propriétaire puisse récupérer ses Ethers.
Établissement de la Propriété
La première étape dans la création de notre Contrat-Wallet est de définir clairement la propriété. À cet égard, nous initialisons une variable de type address payable
nommée “owner” pour stocker l’adresse Ethereum du propriétaire du contrat. Cela est crucial car cela établit qui a le droit de retirer les Ethers du contrat. Au moment de la construction du contrat, cette étape assure l’enregistrement de l’adresse du propriétaire.

Réception des Ethers
Un aspect central du Contrat-Wallet est sa capacité à recevoir des Ethers de n’importe quelle adresse. Il n’est pas nécessaire de définir une fonction spécifique pour cela, car la fonction receive
intégrée, toujours marquée comme externe et payable, gère ce processus. Elle est conçue pour accepter des Ethers envoyés vers l’adresse du contrat sans aucune intervention supplémentaire nécessaire.
C’est une fonction un peu spéciale, car elle ne nécessite pas qu’on la définisse via “function” contrairement aux fonctions classiques.

Retrait Sécurisé des Ethers
Une fonction crucial nommée “withdraw” est mise en place pour permettre le retrait des fonds. Cependant, cette fonction inclut une vérification importante à travers l’instruction require
pour s’assurer que seul le propriétaire légitime – celui dont l’adresse est stockée dans la variable “owner” – peut retirer les Ethers. Une fois cette vérification effectuée, le contrat peut transférer en toute sécurité le montant spécifié d’Ethers.

Consultation du Solde
Pour une gestion efficace, il est important de pouvoir consulter le solde du Contrat-Wallet.
Nous créons donc une vue externe qui retourne le solde actuel des Ethers sur le contrat. Cette vue est spécifiquement marquée comme externe, permettant des appels uniquement depuis l’extérieur du contrat, et retourne un uint
représentant le solde.
Il faut savoir que même sans cette fonction, un explorateur de chaine comme Etherscan permettra de consulter le solde d’Ethers du contrat. Mais cette fonction est pratique pour l’implémenter dans une dApp par exemple.

Conclusion
Le Contrat-Wallet sur la blockchain Ethereum offre un mécanisme intéressant pour gérer vos Ethers. Ce n’est qu’un aperçu des possibilités, vous pouvez intégrer des fonctionnalités supplémentaires, comme la gestion des tokens et des NFTs.
C’est un bon exercice pour s’entrainer à développer en Solidity en recopiant des concepts qui sont propres aux adresses et non au contrat. Je vous conseille de le faire si vous souhaitez devenir développeur Solidity !
Si vous souhaitez vous entretenir avec moi pour un éventuel besoin professionnel, contactez-moi.
Laisser un commentaire