Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs which govern the behaviour of accounts within the Ethereum state.
Solidity was influenced by C++, Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM).
Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.
With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.
When deploying contracts, you should use the latest released version of Solidity. This is because breaking changes as well as new features and bug fixes are introduced regularly. We currently use a 0.x version number to indicate this fast pace of change.
Here's a simple Solidity smart contract,
pragma solidity ^0.5.0;
contract Hello {
uint256 public value;
event UpdateNumber(uint256 _value);
function update() public {
value = rand;
emit UpdateNumber(value);
}
function get() public view returns (uint256) {
return value;
}
}
There are two methods available for interaction in this contract: update
and get
.
- When
update
is called, an on-chain random seed is read fromrand
and stored into the contract variablevalue
. - When
get
is called, thevalue
is read from the contract storage and returned to the caller.
You can find the complete Github repository HERE.
For more information, check out the full language documentation of Solidity