Ethereum - Développer MyContract

Nous nommerons notre contrat MyContract comme dans la déclaration suivante -

contract MyContract {

Nous déclarerons deux variables comme suit -

uint amount;
uint value;

La variable amountdétiendra l'argent accumulé envoyé par les exécuteurs du contrat au créateur du contrat. levaluele champ contiendra la valeur du contrat. Lorsque les exécuteurs exécuteurs exécutent le contrat, levalue sera modifié pour refléter la valeur du contrat équilibré.

Dans le constructeur de contrat, nous définissons les valeurs de ces deux variables.

constructor (uint initialAmount, uint initialValue) public {
   amount = 0;
   value = 1000;
}

Comme initialement, le montant encaissé sur le contrat est nul, nous fixons le amount champ à 0. Nous définissons le contrat value à un nombre arbitraire, dans ce cas, il est de 1000. Le créateur du contrat décide de cette valeur.

Pour examiner le montant collecté à un moment donné, nous fournissons une méthode de contrat public appelée getAmount défini comme suit -

function getAmount() public view returns(uint) {
   return amount;
}

Pour obtenir la valeur du contrat équilibrée à un moment donné, nous définissons getBalance méthode comme suit -

function getBalance() public view returns(uint) {
   return value;
}

Enfin, nous écrivons une méthode contractuelle (Send). Il permet aux clients d'envoyer de l'argent au créateur du contrat -

function send(uint newDeposit) public {
   value = value - newDeposit;
   amount = amount + newDeposit;
}

L'exécution de la send la méthode modifiera les deux value et amount domaines du contrat.

Le code de contrat complet est donné ci-dessous -

contract MyContract {
   uint amount;
   uint value;

   constructor (uint initialAmount, uint initialValue) public {
      amount = 0;
      value = 1000;
   }
   function getBalance() public view returns(uint) {
      return value;
   }
   function getAmount() public view returns(uint) {
      return amount;
   }
   function send(uint newDeposit) public {
      value = value - newDeposit;
      amount = amount + newDeposit;
   }
}