Ethereum - MyContract'ı Geliştirme
Sözleşmemize isim vereceğiz MyContract aşağıdaki beyanda olduğu gibi -
contract MyContract {
İki değişkeni aşağıdaki gibi tanımlayacağız -
uint amount;
uint value;
Değişken amountsözleşme yapanlar tarafından sözleşmeyi yaratana gönderilen birikmiş parayı tutacaktır. valuealanı sözleşme değerini tutacaktır. İcracılar sözleşmeyi yürütürken,value alanı, dengeli sözleşme değerini yansıtacak şekilde değiştirilecektir.
Kontrat kurucuda, bu iki değişkenin değerlerini belirleriz.
constructor (uint initialAmount, uint initialValue) public {
amount = 0;
value = 1000;
}
Başlangıçta, sözleşmede toplanan tutar sıfırdır, biz amount alanını 0 olarak ayarladık. Sözleşmeyi value rastgele bir sayıya, bu durumda 1000'dir. Sözleşmeyi oluşturan kişi bu değere karar verir.
Toplanan miktarı herhangi bir zamanda incelemek için, adı verilen bir kamu sözleşmesi yöntemi sunuyoruz. getAmount aşağıdaki gibi tanımlanır -
function getAmount() public view returns(uint) {
return amount;
}
Herhangi bir zamanda dengeli sözleşme değerini elde etmek için, getBalance yöntem aşağıdaki gibidir -
function getBalance() public view returns(uint) {
return value;
}
Son olarak, bir sözleşme yöntemi yazıyoruz (Send). Müşterilerin sözleşme oluşturucuya biraz para göndermesini sağlar -
function send(uint newDeposit) public {
value = value - newDeposit;
amount = amount + newDeposit;
}
İnfazı send yöntem ikisini de değiştirecek value ve amount sözleşmenin alanları.
Tam sözleşme kodu aşağıda verilmiştir -
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;
}
}