Solidity je vysokoúrovňový, staticky typovaný jazyk určený k implementaci chytrých smluv na platformách podporujících EVM (Ethereum Virtual Machine). Je to jazyk orientovaný na kontrakty, což znamená, že základní jednotkou kódu není třída, ale „Contract“.
Solidity má několik unikátních vlastností, které ho odlišují od běžných jazyků:
—
V Solidity je programátor zodpovědný za to, kolik výpočetních zdrojů aplikace spotřebuje. Každý zápis do blockchainu stojí Gas.
—
Následující kód demonstruje základní syntaxi Solidity (verze 0.8.x):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract PristupovySystem {
address public majitel;
mapping(address => bool) public povoleneAdresy;
// Konstruktor se spustí pouze jednou při nasazení kontraktu
constructor() {
majitel = msg.sender; // Nastaví tvůrce jako majitele
}
// Modifikátor pro omezení přístupu
modifier jenMajitel() {
require(msg.sender == majitel, "Nejste majitel!");
_; // Zde se pokrařuje v těle funkce
}
// Funkce pro přidání uživatele (může volat jen majitel)
function povolitVstup(address _uzivatel) public jenMajitel {
povoleneAdresy[_uzivatel] = true;
}
}
—
Kvůli práci se skutečnými penězi obsahuje Solidity vestavěné mechanismy pro ošetření chyb:
—
Vývojáři v Solidity málokdy začínají „na zelené louce“. Používají prověřené standardy ERC (Ethereum Request for Comments):
Související články:
Tagy: it solidity programming smart-contracts ethereum evm development