Solidity on oliosuuntautunut ohjelmointikieli, jota käytetään älysopimus-nimellä (engl. smart contract) tunnettujen protokollien ohjelmointiin eri lohkoketjualustoilla, erityisesti Ethereumilla. Sen kehittivät Gavin Wood, Christian Reitwiessner ja Alex Beregszaszi yhdessä useiden muiden Ethereumin ytimen ohjelmoijien kanssa.

Solidity on staattisesti tyypitetty kieli ja toimii Ethereum Virtual Machine -ympäristössä. Sen syntaksi perustuu EcmaScript-kieleen ja edelleen JavaScriptiin. Se on saanut vaikutteita myös C++:sta ja Pythonista. Koodiesimerkki pragma solidity >= 0.7.0 <0.8.0;

contract Coin { // The keyword "public" makes variables // accessible from other contracts address public minter; mapping (address => uint) public balances;

// Events allow clients to react to specific // contract changes you declare event Sent (address from, address to, uint amount);

// Constructor code is only run when the contract // is created constructor() public { minter = msg.sender;

// Sends an amount of newly created coins to an address // Can only be called by the contract creator function mint(address receiver, uint amount) public { require(msg.sender == minter); require(amount < 1e60); balances[receiver] += amount;

// Sends an amount of existing coins // from any caller to an address function send(address receiver, uint amount) public { require(amount <= balances[msg.sender], "Insufficient balance."); balances[msg.sender] -= amount; balances[receiver] += amount; emit Sent (msg.sender, receiver, amount);

Lähteet

Viitteet

Luokka:Oliopohjaiset ohjelmointikielet