Last active
August 31, 2021 15:37
-
-
Save Davidegloh/683d6b69caca966e82dde6a3ea3e4072 to your computer and use it in GitHub Desktop.
[Require - Error Handling -Solidity]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Error Handling Require - Solidity code | |
pragma solidity 0.7.5; | |
contract Bank { | |
mapping (address => uint) balance; //ligne de code à tapper pour le mapping. Mapping def. à partir d'une key on obtient une value. (K -> V) | |
address owner; // on "set" a state variable qui est une adresse que l'on appelle owner | |
constructor() { | |
owner = msg.sender; // on utilise un construtor (objet en JS) pour assigner la variable owner avec l'adresse d'envoi du contrat. | |
} | |
function addBalance(uint _toAdd) public returns(uint) { //fonction addBalance pour rajouter un uint à une address | |
require (msg.sender == owner); // error handling "require". on s'assure que la personne qui ajoute des fonds ne puisse t'être que le owner du contrat | |
balance[msg.sender] += _toAdd; // ou aussi balance [msg.sender] + _toAdd. Ici on rajouter une valeur à l'adresse de l'envoyeur | |
return balance[msg.sender]; //ici on retourne la balance de l'envoyeur "[msg.sender]"" updaté | |
} | |
function getBalance() public view returns(uint) {// fonction pour afficher une balance qui retourne un integer de l'adresse de l'envoyeur. | |
return balance[msg.sender]; | |
} | |
function transfer (address recipient, uint amount) public {// fonction permettant de transferer des fonds d'une adresse à l'autre | |
require(balance[msg.sender] >= amount); // error handling "require" pour s'assurer que l'envoyeur à les fonds suffisants pour l'envoi | |
require(msg.sender != recipient); // error handling "require" pour s'assurer que l'envoyeur ne s'envoit pas les fonds à lui même | |
_transfer(msg.sender, recipient, amount); // déclaration de la fonction _transfer (ci-dessous) avec en argument les inputs : adresse de | |
// l'envoyeur, sdu receveur et le montant à transferer. | |
//event Logs and further checks | |
} | |
function _transfer(address from, address to, uint amount) private { // fonction qui permet de débiter les fonds de l'envoyeur et de créditer | |
balance[from] -= amount; //le compte du receveur. Noter que cette fonction est "private" | |
balance[to] += amount; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment