Co to jest solidity
Solidity to stworzony w 2014 roku obiektowy język programowania przeznaczony do tworzenie smart contract publikowanych w blockchain.
IDE do solidity
W celu pracy z solidity proponuję zapoznać się z dostępnym IDE pod adresem https://remix.ethereum.org
Pierwszy program w solidity
Napisanie pierwszego programu w solidity zaczniemy od stworzenie prostego kontraktu i omówienia jego poszczególnych części
pragma solidity ^0.4.25;
contract Box {
string public message;
constructor() public {
message = "Hello";
}
function setMessage(string _message) public {
message = _message;
}
}
Omówienie poszczególnych instrukcji
Wiersz
pragma solidity ^0.4.25;
To nic innego jak informacja dla kompilatora, że nasz program używa wersji solidity co najmniej 0.4.25 lub wyższej do wersji 0.5.0, (nie wliczając wersji 0.5.0 która mogłaby wnieść zmiany pozwalające zepsuć nasz program).
Wiersze
contract Box {
}
Kontrakt - deklaracja sedna aplikacji pisanej w solidity to coś na na wzór "class" z innych języków (zbioru funkcji i danych).
Wiersz
string public message;
To deklaracja zmiennej stanu typu string dostępnej publicznie.
Dodanie słowa kluczowego public powoduje, że utworzona zostanie również funkcja publiczna, pozwalająca na odczyt zmiennej
function message() returns (string) { return message; }
która pozwoli na dostęp do naszej zmiennej.
Jeśli samemu chcielibyśmy stworzyć taką funkcję musielibyśmy użyć innej nazwy np getMessage, ponieważ nazwa message jest zajęta przez samą zmienna. Funkcja ta mogłaby wyglądać następująco:
function getMessage() public view returns (string) {
return message;
}
}
Wiersze
constructor() public {
message = "Hello";
}
To konstruktor naszego kontraktu, zostanie wykonany tylko raz w momencie tworzenia kontraktu. Jak widać jego zadaniem będzie ustawienie naszej zmiennej message.
Wiersze
function setMessage(string _message) public {
message = _message;
}
Stworzeni funkcji o dostępie publicznym pozwalającym na zapisanie argumentu funkcji do naszej zmiennej stanu - message.
PS
Wewnątrz funkcji kontraktu nie potrzeba używać słowa kluczowego this w celu odwołania się do zmiennej.