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