Sözleşmemize MyContract adını aşağıdaki beyanda olduğu gibi vereceğiz -

Kod:
contract MyContract {
İki değişkeni aşağıdaki gibi tanımlayacağız -

Kod:
uint amount;
uint value;
Değişken tutar, sözleşmeyi imzalayanlar tarafından sözleşmeyi yaratana gönderilen birikmiş parayı tutacaktır. Değer alanı, sözleşme değerini tutacaktır. İdareciler sözleşmeyi yürütürken, değer alanı dengeli sözleşme değerini yansıtacak şekilde değiştirilecektir.

Kontrat kurucuda, bu iki değişkenin değerlerini belirleriz.

Kod:
constructor (uint initialAmount, uint initialValue) public {
   amount = 0;
   value = 1000;
}
Başlangıçta, sözleşmede toplanan miktar sıfırdır, miktar alanını 0 olarak ayarladık. Sözleşme değerini rastgele bir sayıya ayarladık, bu durumda 1000'dir. Sözleşmeyi oluşturan kişi bu değere karar verir.

Herhangi bir zamanda toplanan miktarı incelemek için, aşağıdaki gibi tanımlanan getAmount adlı bir genel sözleşme yöntemi sunuyoruz -

Kod:
function getAmount() public view returns(uint) {
   return amount;
}
Herhangi bir zamanda dengeli sözleşme değerini elde etmek için getBalance yöntemini şu şekilde tanımlarız:

Kod:
function getBalance() public view returns(uint) {
   return value;
}
Son olarak bir sözleşme yöntemi (Gönder) yazıyoruz. Müşterilerin sözleşme oluşturucuya bir miktar para göndermesini sağlar -

Kod:
function send(uint newDeposit) public {
   value = value - newDeposit;
   amount = amount + newDeposit;
}
Gönderme yönteminin uygulanması, sözleşmenin hem değer hem de tutar alanlarını değiştirecektir.

Tam sözleşme kodu aşağıda verilmiştir -

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