{{ page.heading }}
9 | {% elsif page.title and page.layout != 'archive' %} 10 |{{ page.title }}
11 | {% endif %} 12 | {% if page.description %} 13 |{{ page.description }}
14 | {% endif %} 15 | {{ content }} 16 |├── .DS_Store ├── .gitattributes ├── .gitignore ├── 404.html ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── _config.yml ├── _data ├── footer.yml └── navigation.yml ├── _includes ├── list-posts.html ├── navigation.html ├── post-title.html ├── relative-src.html ├── social-icon.html └── youtube.html ├── _layouts ├── archive.html ├── default.html ├── page.html └── post.html ├── _posts └── _defaults.md ├── _sass ├── elements.scss ├── footer.scss ├── forms.scss ├── landing-page.scss ├── layout.scss ├── mixins │ ├── columns.scss │ └── flexbox.scss ├── navigation.scss └── variables.scss ├── about.html ├── ace.js ├── compiler.js ├── compiler_worker.js ├── css └── screen.scss ├── favicon.png ├── images ├── SolBlue.png ├── SolBlueGradient.png ├── SolBlueHeader.png ├── SolBlueLines.png ├── SolGray.png └── logo.svg ├── index.html ├── mode-javascript.js ├── mode-solidity.js ├── robots.txt ├── siteicon.png └── touch-icon.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/.DS_Store -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site/ 2 | .sass-cache/ 3 | .jekyll-metadata 4 | .jekyll-cache/ 5 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Whoops! 3 | description: The page you are looking for does not seem to exist (in this universe). 🪐 4 | permalink: /404.html 5 | sitemap: false 6 | --- 7 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'jekyll', '4.0.0' 4 | 5 | group :jekyll_plugins do 6 | gem 'jekyll-archives', '2.1.1' 7 | gem 'jekyll-feed', '0.12.1' 8 | gem 'jekyll-paginate', '1.1.0' 9 | gem 'jekyll-seo-tag', '2.6.1' 10 | gem 'jekyll-sitemap', '1.3.1' 11 | end 12 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.8.0) 5 | public_suffix (>= 2.0.2, < 5.0) 6 | colorator (1.1.0) 7 | concurrent-ruby (1.1.7) 8 | em-websocket (0.5.2) 9 | eventmachine (>= 0.12.9) 10 | http_parser.rb (~> 0.6.0) 11 | eventmachine (1.2.7) 12 | ffi (1.13.1) 13 | forwardable-extended (2.6.0) 14 | http_parser.rb (0.6.0) 15 | i18n (1.8.5) 16 | concurrent-ruby (~> 1.0) 17 | jekyll (4.0.0) 18 | addressable (~> 2.4) 19 | colorator (~> 1.0) 20 | em-websocket (~> 0.5) 21 | i18n (>= 0.9.5, < 2) 22 | jekyll-sass-converter (~> 2.0) 23 | jekyll-watch (~> 2.0) 24 | kramdown (~> 2.1) 25 | kramdown-parser-gfm (~> 1.0) 26 | liquid (~> 4.0) 27 | mercenary (~> 0.3.3) 28 | pathutil (~> 0.9) 29 | rouge (~> 3.0) 30 | safe_yaml (~> 1.0) 31 | terminal-table (~> 1.8) 32 | jekyll-archives (2.1.1) 33 | jekyll (>= 2.4) 34 | jekyll-feed (0.12.1) 35 | jekyll (>= 3.7, < 5.0) 36 | jekyll-paginate (1.1.0) 37 | jekyll-sass-converter (2.1.0) 38 | sassc (> 2.0.1, < 3.0) 39 | jekyll-seo-tag (2.6.1) 40 | jekyll (>= 3.3, < 5.0) 41 | jekyll-sitemap (1.3.1) 42 | jekyll (>= 3.7, < 5.0) 43 | jekyll-watch (2.2.1) 44 | listen (~> 3.0) 45 | kramdown (2.3.1) 46 | rexml 47 | kramdown-parser-gfm (1.1.0) 48 | kramdown (~> 2.0) 49 | liquid (4.0.3) 50 | listen (3.3.1) 51 | rb-fsevent (~> 0.10, >= 0.10.3) 52 | rb-inotify (~> 0.9, >= 0.9.10) 53 | mercenary (0.3.6) 54 | pathutil (0.16.2) 55 | forwardable-extended (~> 2.6) 56 | public_suffix (4.0.6) 57 | rb-fsevent (0.10.4) 58 | rb-inotify (0.10.1) 59 | ffi (~> 1.0) 60 | rexml (3.2.5) 61 | rouge (3.25.0) 62 | safe_yaml (1.0.5) 63 | sassc (2.4.0) 64 | ffi (~> 1.9) 65 | terminal-table (1.8.0) 66 | unicode-display_width (~> 1.1, >= 1.1.1) 67 | unicode-display_width (1.7.0) 68 | 69 | PLATFORMS 70 | ruby 71 | 72 | DEPENDENCIES 73 | jekyll (= 4.0.0) 74 | jekyll-archives (= 2.1.1) 75 | jekyll-feed (= 0.12.1) 76 | jekyll-paginate (= 1.1.0) 77 | jekyll-seo-tag (= 2.6.1) 78 | jekyll-sitemap (= 1.3.1) 79 | 80 | BUNDLED WITH 81 | 1.17.3 82 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 ethereum 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 🚨 This repository has been archived. Please visit the new home for the Solidity website codebase at [`ethereum/solidity-website`](https://github.com/ethereum/solidity-website) 2 | 3 | # Solidity Language Portal 4 | 5 | The Solidity Language Portal is based on the [Hydra template](https://learn.cloudcannon.com/templates/hydra/) for Jekyll. 6 | 7 | ## Develop 8 | 9 | Hydra was built with [Jekyll](http://jekyllrb.com/) version 3.3.1, but should support newer versions as well. 10 | 11 | Install the dependencies with [Bundler](http://bundler.io/): 12 | 13 | ~~~bash 14 | $ bundle install 15 | ~~~ 16 | 17 | Run `jekyll` commands through Bundler to ensure you're using the right versions: 18 | 19 | ~~~bash 20 | $ bundle exec jekyll serve 21 | ~~~ 22 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # ---- 2 | # Site 3 | 4 | title: Solidity Programming Language 5 | url: "https://soliditylang.org/" 6 | baseurl: 7 | 8 | # Values for the jekyll-seo-tag gem (https://github.com/jekyll/jekyll-seo-tag) 9 | logo: /siteicon.png 10 | description: The Solidity language portal is a comprehensive information page for the Solidity programming language. It features documentation, binaries, blog, resources & more. 11 | author: 12 | name: Solidity Team 13 | email: solidity@ethereum.org 14 | twitter: solidity_lang 15 | social: 16 | name: Solidity 17 | links: 18 | - https://github.com/ethereum/solidity 19 | - https://gitter.im/ethereum/solidity 20 | - https://twitter.com/solidity_lang 21 | 22 | # ----- 23 | # Build 24 | 25 | timezone: Etc/UTC 26 | 27 | collections: 28 | staff_members: 29 | _hide_content: true 30 | 31 | paginate: 10 32 | paginate_path: "/blog/:num/" 33 | permalink: pretty 34 | 35 | defaults: 36 | - 37 | scope: 38 | path: "" 39 | type: "posts" 40 | values: 41 | layout: "post" 42 | _options: 43 | content: 44 | width: 1500 45 | height: 2500 46 | - 47 | scope: 48 | path: "" 49 | type: "staff_members" 50 | values: 51 | _options: 52 | image_path: 53 | width: 600 54 | height: 600 55 | - 56 | scope: 57 | path: "" 58 | values: 59 | layout: "page" 60 | - 61 | scope: 62 | path: "index.html" 63 | values: 64 | layout: "default" 65 | - 66 | scope: 67 | path: "contact.html" 68 | values: 69 | full_width: true 70 | 71 | jekyll-archives: 72 | enabled: 73 | - categories 74 | 75 | plugins: 76 | - jekyll-archives 77 | - jekyll-sitemap 78 | - jekyll-seo-tag 79 | - jekyll-feed 80 | - jekyll-paginate 81 | 82 | exclude: 83 | - Gemfile 84 | - Gemfile.lock 85 | - README.md 86 | - LICENCE 87 | 88 | # ----------- 89 | # CloudCannon 90 | 91 | social_icons: 92 | - Facebook 93 | - Google Plus 94 | - Instagram 95 | - LinkedIn 96 | - Pinterest 97 | - Tumblr 98 | - Twitter 99 | - YouTube 100 | - RSS 101 | - Gitter 102 | - Github 103 | 104 | _comments: 105 | map: Update the map location and display settings. 106 | latitude: Coordinates for the center marker on the map. 107 | longitude: Coordinates for the center marker on the map. 108 | zoom: The zoom level for the map. 109 | pricing_table: Update the information in the pricing tables. 110 | highlight: Emphasis the text 111 | color: The background colour used in the plan name and call to action. 112 | new_window: Open link in new window 113 | -------------------------------------------------------------------------------- /_data/footer.yml: -------------------------------------------------------------------------------- 1 | - links: 2 | - name: releases 3 | link: https://github.com/ethereum/solidity/releases 4 | new_window: true 5 | - name: github 6 | link: https://github.com/ethereum/solidity 7 | new_window: true 8 | - name: security policy & bounty 9 | link: https://github.com/ethereum/solidity/blob/develop/SECURITY.md 10 | new_window: true 11 | - name: blog 12 | link: https://blog.soliditylang.org 13 | new_window: true 14 | - name: about 15 | link: /about/ 16 | - links: 17 | - name: documentation 18 | link: https://docs.soliditylang.org/en/latest/ 19 | new_window: true 20 | - name: contributing 21 | link: https://docs.soliditylang.org/en/latest/contributing.html 22 | new_window: true 23 | - name: tools & resources 24 | link: https://docs.soliditylang.org/en/latest/resources.html 25 | new_window: true 26 | - name: logo policy 27 | link: https://docs.soliditylang.org/en/latest/brand-guide.html 28 | new_window: true 29 | - links: 30 | - name: twitter 31 | link: https://twitter.com/solidity_lang 32 | new_window: true 33 | - name: mastodon 34 | link: https://fosstodon.org/@solidity 35 | new_window: true 36 | - name: matrix 37 | link: https://matrix.to/#/#ethereum_solidity:gitter.im 38 | new_window: true 39 | - name: gitter 40 | link: https://gitter.im/ethereum/solidity 41 | new_window: true 42 | - name: forum 43 | link: https://forum.soliditylang.org/ 44 | new_window: true 45 | -------------------------------------------------------------------------------- /_data/navigation.yml: -------------------------------------------------------------------------------- 1 | - name: Install 2 | link: https://docs.soliditylang.org/en/latest/installing-solidity.html 3 | new_window: true 4 | highlight: false 5 | - name: Docs 6 | link: https://docs.soliditylang.org/en/latest/ 7 | new_window: true 8 | highlight: false 9 | - name: Chat 10 | link: https://gitter.im/ethereum/solidity 11 | new_window: true 12 | highlight: false 13 | - name: Forum 14 | link: https://forum.soliditylang.org/ 15 | new_window: true 16 | highlight: false 17 | - name: Blog 18 | link: https://blog.soliditylang.org 19 | new_window: true 20 | highlight: true 21 | -------------------------------------------------------------------------------- /_includes/list-posts.html: -------------------------------------------------------------------------------- 1 | {% for post in include.posts %} 2 |
2 | {% for category in include.post.categories %} 3 | 4 | {{ category | capitalize }} 5 | 6 | {% endfor %} 7 | {{ include.post.date | date: "%B %d, %Y" }} 8 |
9 | -------------------------------------------------------------------------------- /_includes/relative-src.html: -------------------------------------------------------------------------------- 1 | {% assign prefix = include.src | slice: 0, 2 %}{% assign protocol = include.src | slice: 0, 4 %}{% unless protocol == 'http' or prefix == "//" %}{{ site.baseurl }}{% endunless %}{{ include.src }} 2 | -------------------------------------------------------------------------------- /_includes/social-icon.html: -------------------------------------------------------------------------------- 1 | {% case include.icon %} 2 | {% when "Facebook" %} 3 | 4 | {% when "Google Plus" %} 5 | 6 | {% when "Instagram" %} 7 | 8 | {% when "LinkedIn" %} 9 | 10 | {% when "Pinterest" %} 11 | 12 | {% when "Tumblr" %} 13 | 14 | {% when "Twitter" %} 15 | 16 | {% when "YouTube" %} 17 | 18 | {% when "RSS" %} 19 | 20 | {% endcase %} -------------------------------------------------------------------------------- /_includes/youtube.html: -------------------------------------------------------------------------------- 1 |{{ blog.description }}
14 | {% endif %} 15 | 16 |{{ page.description }}
14 | {% endif %} 15 | {{ content }} 16 |Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on the Ethereum Virtual Machine.
12 |Smart contracts are programs that are executed inside a peer-to-peer network where nobody has special authority over the execution, and thus they allow to implement tokens of value, ownership, voting and other kinds of logics. Note that 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.
13 |Currently, 0.x version numbers are being used to indicate the fast pace of change.
14 |Solidity was publicly previewed for the first time in November 2014 at Devcon0. Solidity v0.1.0 turned 5 years old on July 8th 2020. You can read more about Solidity's history here.
15 |The Solidity programming language is an open-source, community project 16 | governed by a core team. The core team is sponsored by the Ethereum Foundation.
17 |' + error.formattedMessage + ''; 214 | } 215 | } 216 | } 217 | }); 218 | 219 | let dropDownList = document.getElementById("selectedContract"); 220 | function selectionChanged() { 221 | editor.setValue(examples[dropDownList.options[dropDownList.selectedIndex].id], 1); 222 | } 223 | selectionChanged(); 224 | dropDownList.addEventListener('change', selectionChanged); -------------------------------------------------------------------------------- /compiler_worker.js: -------------------------------------------------------------------------------- 1 | importScripts(['https://solc-bin.ethereum.org/emscripten-wasm32/solc-emscripten-wasm32-latest.js']) 2 | 3 | let version = Module.cwrap('solidity_version', 'string', []); 4 | postMessage({version: version()}); 5 | let compile = Module.cwrap('solidity_compile', 'string', ['string', 'number', 'number']); 6 | 7 | addEventListener('message', (event) => { 8 | postMessage({result: compile(event.data, 0, 0)}) 9 | }) 10 | -------------------------------------------------------------------------------- /css/screen.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | @import "mixins/flexbox"; 4 | @import "mixins/columns"; 5 | @import "variables"; 6 | @import "elements"; 7 | @import "landing-page"; 8 | @import "layout"; 9 | @import "forms"; 10 | @import "navigation"; 11 | @import "footer"; -------------------------------------------------------------------------------- /favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/favicon.png -------------------------------------------------------------------------------- /images/SolBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/images/SolBlue.png -------------------------------------------------------------------------------- /images/SolBlueGradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/images/SolBlueGradient.png -------------------------------------------------------------------------------- /images/SolBlueHeader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/images/SolBlueHeader.png -------------------------------------------------------------------------------- /images/SolBlueLines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/images/SolBlueLines.png -------------------------------------------------------------------------------- /images/SolGray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ethereum/solidity-portal/8c7b481c65a12dd218bf1a9a3a879f5380c7c0a9/images/SolGray.png -------------------------------------------------------------------------------- /images/logo.svg: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: Solidity Programming Language 3 | description: Solidity is a statically-typed curly-braces programming language designed for developing smart contracts that run on Ethereum. 4 | --- 5 | 6 | 7 | 8 | 14 | 15 | 16 |
Solidity 0.8.20 includes a range of improvements in the via-IR pipeline and improves the list of events exposed in the contract ABI, and, most importantly, introduces support for the Shanghai hard fork!
27 |
For all details please refer to the release announcement. We have also included 3 bugfixes in this release!
As a relatively young language, Solidity is advancing at a rapid speed. We aim for a regular (non-breaking) release every month, with approximately one breaking release per year. You can follow the implementation status of new features in the Solidity Github project. You can 49 | see the upcoming changes for the next breaking release by switching from the default branch (`develop`) to the `breaking branch`. You can actively shape Solidity by providing your input and participating in the language design.
50 |Recent news include:
60 |Check out the latest Solidity Core Team Updates.
The results of the Solidity Developer Survey 2021 are published! Read the full report to learn more.
Solidity v0.8.0 is out, bringing you SafeMath by default! Check out this guide on how to best update your code.
Latest from the blog: User Defined Value Types and abi.encodeCall Literals Bug.
Compiler Result
87 |As a beginner, you find great tutorials, resources and tools that help you get started building with Solidity on the ethereum.org developer portal.
Alternatively, you can start by learning the basics about blockchain, smart contracts and the Ethereum Virtual Machine (EVM) in the Solidity docs.
We welcome Solidity power users, auditors, security experts and tooling developers to 114 | get involved and actively contribute to the Solidity language design process.
115 |Join the Solidity forum, where existing properties of the language and proposals for new language features can be discussed.
Give input by completing (feature) feedback surveys which are regularly distributed via Twitter and the forum.
Join the dedicated language design discussion calls, in which selected topics, issues or feature implementations are debated in detail.
Or share your thoughts and take part in design discussions directly via relevant Github issues.
For ad-hoc inquiries and questions you can reach out to the core team using the solidity-dev Matrix channel (currently also still available on Gitter), a 122 | dedicated chatroom for conversations around the Solidity compiler and language development.
123 |After a first virtual Solidity Summit in 2020, we met in person for the second Solidity Summit in 2022 in Amsterdam.
133 |Solidity Summits usually feature talks & discussions on Solidity, Yul, language design and tooling. The event series aims to...
134 |Enable useful (language-design related) discussions which result in improvement proposals and actual implementations.
Foster communication between teams working on similar topics.
Identify needs for the smart contract ecosystem for Ethereum.
Useful links from prior Solidity Summits:
140 |🗓️ 2020 Agenda +++ 📺 2020 Talks +++ 📖 2020 Event Recap.
141 |🗓️ 2022 Agenda +++ 📺 2022 Talks +++ 📖 2022 Event Recap.
142 |