Ethereum - Desenvolvendo MyContract

Vamos nomear nosso contrato MyContract como na seguinte declaração -

contract MyContract {

Declararemos duas variáveis ​​da seguinte forma -

uint amount;
uint value;

A variável amountirá reter o dinheiro acumulado enviado pelos executores do contrato ao criador do contrato. ovaluecampo conterá o valor do contrato. À medida que os executores executam o contrato, ovalue campo será modificado para refletir o valor do contrato equilibrado.

No construtor de contrato, definimos os valores dessas duas variáveis.

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

Como inicialmente o valor arrecadado no contrato é zero, definimos o amount campo para 0. Definimos o contrato value para algum número arbitrário, neste caso é 1000. O criador do contrato decide esse valor.

Para examinar o valor coletado em qualquer ponto do tempo, fornecemos um método de contrato público chamado getAmount definido como segue -

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

Para obter o valor do contrato equilibrado em qualquer ponto do tempo, definimos getBalance método da seguinte forma -

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

Finalmente, escrevemos um método de contrato (Send). Ele permite que os clientes enviem algum dinheiro ao criador do contrato -

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

A execução do send método irá modificar ambos value e amount campos do contrato.

O código completo do contrato é fornecido abaixo -

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