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.[1] Se on saanut vaikutteita myös C++:sta ja Pythonista.[2]
Koodiesimerkki
[muokkaa | muokkaa wikitekstiä]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
[muokkaa | muokkaa wikitekstiä]- Jaggi, Harish & Jha, Raj: Rendezvous with Practical Solidity: A Complete Hands On Book. Notion Press, 2020. (englanniksi)
- Solidity v0.8.3. Viitattu 23.3.2021.