Ethereum - Sviluppo di MyContract

Daremo un nome al nostro contratto MyContract come nella seguente dichiarazione -

contract MyContract {

Dichiareremo due variabili come segue:

uint amount;
uint value;

La variabile amounttratterrà il denaro accumulato inviato dagli esecutori del contratto al creatore del contratto. Ilvalueil campo conterrà il valore del contratto. Mentre gli esecutori eseguono il contratto, ilvalue il campo verrà modificato per riflettere il valore del contratto bilanciato.

Nel costruttore del contratto, impostiamo i valori di queste due variabili.

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

Come inizialmente, l'importo incassato sul contratto è zero, abbiamo impostato il amount campo a 0. Impostiamo il contratto value a un numero arbitrario, in questo caso è 1000. L'ideatore del contratto decide questo valore.

Per esaminare l'importo raccolto in un dato momento, forniamo un metodo di contratto pubblico chiamato getAmount definito come segue -

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

Per ottenere il valore del contratto bilanciato in un dato momento, definiamo getBalance metodo come segue -

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

Infine, scriviamo un metodo di contratto (Send). Consente ai clienti di inviare del denaro all'ideatore del contratto -

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

L'esecuzione del send metodo modificherà entrambi value e amount campi del contratto.

Di seguito viene fornito il codice completo del contratto:

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;
   }
}