This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_solidity:start [2021/08/09 12:50] murphy |
dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_solidity:start [2022/02/05 06:05] (current) nick ↷ Page moved and renamed from dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_solidity to dido:public:ra:xapend:xapend.b_stds:defact:ethereum:ethereum_solidity:start |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ==== Ethereum: Solidity Language Specification ==== | ==== Ethereum: Solidity Language Specification ==== | ||
| - | [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum| return to the Ethereum Standards ]] | + | [[dido:public:ra:xapend:xapend.b_stds:defact:ethereum:start| return to the Ethereum Standards ]] |
| <table> | <table> | ||
| Line 17: | Line 17: | ||
| Source: [[https://en.wikipedia.org/wiki/Solidity | Wikipedia Description of Solidity]] | Source: [[https://en.wikipedia.org/wiki/Solidity | Wikipedia Description of Solidity]] | ||
| - | ://Solidity is a statically-typed programming language designed for developing smart contracts that run on the EVM(( | + | ://Solidity is a statically-typed [[dido:public:ra:xapend:xapend.a_glossary:p:programlang|programming language]] designed for developing [[dido:public:ra:xapend:xapend.a_glossary:s:smart_contract|smart contracts]] that run on the EVM(( |
| "Hyperledger Fabric Tutorial - Create a blockchain app for loyalty points". IBM Developer. Retrieved 10 April 2019. | "Hyperledger Fabric Tutorial - Create a blockchain app for loyalty points". IBM Developer. Retrieved 10 April 2019. | ||
| ))(( | ))(( | ||
| Line 27: | Line 27: | ||
| ))// | ))// | ||
| - | ://As specified by Wood it is designed around the ECMAScript syntax to make it familiar for existing web developers;[citation needed] unlike ECMAScript it has static typing and variadic return types. Compared to other EVM-targeting languages of the time such as Serpent and Mutan, Solidity contained a number of important differences. Complex member variables for contracts including arbitrarily hierarchical mappings and structs were supported. Contracts support inheritance, including multiple inheritance with C3 linearization. An [[dido:public:ra:xapend:xapend.a_glossary:a:application_binary_interface_api]] facilitating multiple type-safe functions within a single contract was also introduced (and later supported by Serpent). A documentation system for specifying a user-centric description of the ramifications of a method-call was also included in the proposal, known as "Natural Language Specification".(( | + | ://As specified by Wood it is designed around the ECMAScript [[dido:public:ra:xapend:xapend.a_glossary:s:syntax|syntax]] to make it familiar for existing web developers;[citation needed] unlike ECMAScript it has static typing and variadic return types. Compared to other EVM-targeting languages of the time such as Serpent and Mutan, Solidity contained a number of important differences. Complex member variables for contracts including arbitrarily hierarchical mappings and structs were supported. Contracts support inheritance, including multiple inheritance with C3 linearization. An [[dido:public:ra:xapend:xapend.a_glossary:a:application_binary_interface_api]] facilitating multiple type-safe functions within a single contract was also introduced (and later supported by Serpent). A documentation system for specifying a user-centric description of the ramifications of a method-call was also included in the proposal, known as "Natural Language Specification".(( |
| Kapetanios-2008-06-27 & p.309. | Kapetanios-2008-06-27 & p.309. | ||
| ))(( | ))(( | ||
| Line 41: | Line 41: | ||
| : //Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.// | : //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.// | + | : //With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and [[dido:public:ra:xapend:xapend.a_glossary:m:multi-signature|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 [[https://semver.org/#spec-item-4 | to indicate this fast pace of change]].// | : //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 [[https://semver.org/#spec-item-4 | to indicate this fast pace of change]].// | ||