Solidity

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

 

Oliopohjaiset ohjelmointikielet