Smart contract d’une garantie autonome au sens de l’article 2321 du code civil

Copyright: https://www.coindesk.com/information/ethereum-smart-contracts-work/

Description du contrat.

La blockchain Ethereum est la plus populaire pour le développement de smart contract.
La garantie autonome la plus simple du monde.
pragma solidity ^0.4.19;contract garantieAutonome {

uint public etherGaranti;
uint public dureeDuContrat = 15 days;
uint public delai;

address public creancier=0xe0f5206bbd039e7b0592d8918820024e2a7437b8;
address public garant=0xe0f5206bbd039e7b0592d8918820024e2a7437b1;


modifier onlyCreancier () {
require(msg.sender == creancier);
_;
}

modifier onlyGarant () {
require (msg.sender == garant);
_;
}

function internal commencerDelai (){
delai = now + dureeDuContrat;

}

function deposerEther() public payable onlyGarant {
require (msg.value == 1 ether);
etherGaranti = msg.value;
commencerDelai();

}

function retirerEther() public onlyCreancier {
require(now < delai);
creancier.transfer(etherGaranti);
etherGaranti = 0;
}

function finirContrat() public onlyGarant {
require(now > delai);
garant.transfer(etherGaranti);
etherGaranti = 0;}

}

Description du code

Création du smart contract et déclaration des variables

pragma solidity ^0.4.19;
garantieAutonome contract {}
uint public nomDeLaVariable = [valeur de la variable]
  • une variable qui stocke l’ether déposé en garantie, que nous avons appelé etherGaranti,
uint public etherGaranti;
  • une autre correspondant à la durée du contrat, appelée dureeDuContratet valant 15 jours,
uint public dureeDuContrat = 15 days;
  • et une dernière correspondant au délai (sur laquelle nous reviendrons plus en détail plus tard).
uint public delai;
address public creancier=0xe0f5206bbd039e7b0592d8918820024e2a7437b9;
address public garant=0xe0f5206bbd039e7b0592d8918820024e2a7437b1;

Création des « modifier » : les vérificateurs de fonctions

modifier nomDuModifier (){
// on écrit le code entre les accolades
_;}
require(msg.sender == creancier);
require(msg.sender == garant);

Création des fonctions

function deposerEther() public payable onlyGarant {
require (msg.value == 1 ether);
etherGaranti = msg.value;
commencerDelai();

}
function retirerEther() public onlyCreancier {
require(now < delai);
creancier.transfer(etherGaranti);
etherGaranti = 0;
}
require(now > delai);
require (etherGaranti != 0);
garant.transfer(etherGaranti);

--

--

--

Doctorant | Consultant Smart contract | abdoulayediallo.fr

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abdoulaye Diallo

Abdoulaye Diallo

Doctorant | Consultant Smart contract | abdoulayediallo.fr

More from Medium

Synthetic Assets

Transfer ERC20 Token with and without a wallet.

Dexsport — Mainnet Launch and App Review

#iGainEarlyBirdAirdrop!