Solidity Dersleri serisi boyunca öğrenmiş olduğumuz bilgileri pekiştirmek için basit bir akıllı sözleşme yazalım. Bir sayacı artırıp azaltabileceğimiz bir sözleşme yazacağız ve Solidity dilinin temel özelliklerini, fonksiyonları ve veri tiplerini tekrar edeceğiz. Hadi başlayalım!
Her Solidity sözleşmesi bir lisans bildirimi ve pragma ifadesi ile başlar. Ardından, contract anahtar kelimesi ile sözleşmemizi tanımlarız.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Sayici {
uint256 public sayac;
// Sayacı başlatan constructor
constructor() {
sayac = 0; // Başlangıç değeri 0
}
// Sayacı artıran fonksiyon
function arttir() public {
sayac += 1;
}
// Sayacı azaltan fonksiyon
function azalt() public {
require(sayac > 0, "Sayac sifirin altina inemez!"); // Sayac 0'ın altına inemez
sayac -= 1;
}
}
Koddaki elemanların ne işe yaradığına tek tek bakalım:
- Lisans Bildirimi: “SPDX-License-Identifier” kodun lisans türünü belirtir.
- Pragma: Solidity sürümünü belirtiriz. Bu sözleşme, 0.8.0 ve daha yeni sürümlerle uyumludur.
- sayac: Sayacın saklanacağı bir uint256 değişkeni tanımlıyoruz. Bu, blockchain’de kalıcı olarak saklanacaktır.
- constructor(): Bu fonksiyon, sözleşme dağıtıldığında ilk olarak çağrılır ve sayacın başlangıç değeri olarak 0 atanır.
- arttir(): Bu fonksiyon, sayacı 1 artırır. Her çağrıldığında sayacın değeri bir artar.
- azalt(): Sayacı 1 azaltan bir fonksiyon. require ifadesiyle, sayacın sıfırın altına inmesini engelliyoruz.