Update Side Menu (#14081)

* Update index.rst

### Plan

#### Bundle 1

Security cons.
List of known bugs
Solidity Breaking Changes (should be 1 link only)

#### Bundle 2

Natspec
SMTC
YUL
Import path

#### Bundle 3

Style Guide
Common Patterns
Resources
Contributing
Languages influences
Keyword Index

* Line breaks fix

* Whitespaces

* Update docs/index.rst

Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>

* Update docs/index.rst

* Update docs/index.rst

---------

Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
This commit is contained in:
Nuno Santos 2023-04-17 14:27:06 +01:00 committed by GitHub
parent 719cce02b4
commit 5a776c722f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,38 +1,35 @@
Solidity Solidity
======== ========
Solidity is an object-oriented, high-level language for implementing smart Solidity is an object-oriented, high-level language for implementing smart contracts.
contracts. Smart contracts are programs which govern the behaviour of accounts Smart contracts are programs which govern the behaviour of accounts within the Ethereum state.
within the Ethereum state.
Solidity is a `curly-bracket language <https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Curly-bracket_languages>`_ designed to target the Ethereum Virtual Machine (EVM). Solidity is a `curly-bracket language <https://en.wikipedia.org/wiki/List_of_programming_languages_by_type#Curly-bracket_languages>`_ designed to target the Ethereum Virtual Machine (EVM).
It is influenced by C++, Python and JavaScript. You can find more details about which languages Solidity has been inspired by in the :doc:`language influences <language-influences>` section. It is influenced by C++, Python and JavaScript.
You can find more details about which languages Solidity has been inspired by in the :doc:`language influences <language-influences>` section.
Solidity is statically typed, supports inheritance, libraries and complex Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.
user-defined types among other features.
With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, With Solidity you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets.
and multi-signature wallets.
When deploying contracts, you should use the latest released When deploying contracts, you should use the latest released version of Solidity.
version of Solidity. Apart from exceptional cases, only the latest version receives Apart from exceptional cases, only the latest version receives
`security fixes <https://github.com/ethereum/solidity/security/policy#supported-versions>`_. `security fixes <https://github.com/ethereum/solidity/security/policy#supported-versions>`_.
Furthermore, breaking changes as well as Furthermore, breaking changes as well as new features are introduced regularly.
new features are introduced regularly. We currently use We currently use a 0.y.z version number `to indicate this fast pace of change <https://semver.org/#spec-item-4>`_.
a 0.y.z version number `to indicate this fast pace of change <https://semver.org/#spec-item-4>`_.
.. warning:: .. warning::
Solidity recently released the 0.8.x version that introduced a lot of breaking Solidity recently released the 0.8.x version that introduced a lot of breaking changes.
changes. Make sure you read :doc:`the full list <080-breaking-changes>`. Make sure you read :doc:`the full list <080-breaking-changes>`.
Ideas for improving Solidity or this documentation are always welcome, Ideas for improving Solidity or this documentation are always welcome,
read our :doc:`contributors guide <contributing>` for more details. read our :doc:`contributors guide <contributing>` for more details.
.. Hint:: .. Hint::
You can download this documentation as PDF, HTML or Epub by clicking on the versions You can download this documentation as PDF, HTML or Epub
flyout menu in the bottom-left corner and selecting the preferred download format. by clicking on the versions flyout menu in the bottom-left corner and selecting the preferred download format.
Getting Started Getting Started
@ -40,8 +37,7 @@ Getting Started
**1. Understand the Smart Contract Basics** **1. Understand the Smart Contract Basics**
If you are new to the concept of smart contracts we recommend you to get started by digging If you are new to the concept of smart contracts we recommend you to get started by digging into the "Introduction to Smart Contracts" section, which covers:
into the "Introduction to Smart Contracts" section, which covers:
* :ref:`A simple example smart contract <simple-smart-contract>` written in Solidity. * :ref:`A simple example smart contract <simple-smart-contract>` written in Solidity.
* :ref:`Blockchain Basics <blockchain-basics>`. * :ref:`Blockchain Basics <blockchain-basics>`.
@ -59,29 +55,27 @@ simply choose your preferred option and follow the steps outlined on the :ref:`i
.. hint:: .. hint::
You can try out code examples directly in your browser with the You can try out code examples directly in your browser with the
`Remix IDE <https://remix.ethereum.org>`_. Remix is a web browser based IDE `Remix IDE <https://remix.ethereum.org>`_.
that allows you to write, deploy and administer Solidity smart contracts, without Remix is a web browser based IDE that allows you to write, deploy and administer Solidity smart contracts,
the need to install Solidity locally. without the need to install Solidity locally.
.. warning:: .. warning::
As humans write software, it can have bugs. You should follow established As humans write software, it can have bugs.
software development best-practices when writing your smart contracts. This You should follow established software development best-practices when writing your smart contracts.
includes code review, testing, audits, and correctness proofs. Smart contract This includes code review, testing, audits, and correctness proofs.
users are sometimes more confident with code than their authors, and Smart contract users are sometimes more confident with code than their authors,
blockchains and smart contracts have their own unique issues to and blockchains and smart contracts have their own unique issues to watch out for,
watch out for, so before working on production code, make sure you read the so before working on production code, make sure you read the :ref:`security_considerations` section.
:ref:`security_considerations` section.
**4. Learn More** **4. Learn More**
If you want to learn more about building decentralized applications on Ethereum, the If you want to learn more about building decentralized applications on Ethereum,
`Ethereum Developer Resources <https://ethereum.org/en/developers/>`_ the `Ethereum Developer Resources <https://ethereum.org/en/developers/>`_ can help you with further general documentation around Ethereum,
can help you with further general documentation around Ethereum, and a wide selection of tutorials, and a wide selection of tutorials, tools and development frameworks.
tools and development frameworks.
If you have any questions, you can try searching for answers or asking on the If you have any questions, you can try searching for answers or asking on the
`Ethereum StackExchange <https://ethereum.stackexchange.com/>`_, or `Ethereum StackExchange <https://ethereum.stackexchange.com/>`_,
our `Gitter channel <https://gitter.im/ethereum/solidity/>`_. or our `Gitter channel <https://gitter.im/ethereum/solidity/>`_.
.. _translations: .. _translations:
@ -89,8 +83,8 @@ Translations
------------ ------------
Community contributors help translate this documentation into several languages. Community contributors help translate this documentation into several languages.
Note that they have varying degrees of completeness and up-to-dateness. The English Note that they have varying degrees of completeness and up-to-dateness.
version stands as a reference. The English version stands as a reference.
You can switch between languages by clicking on the flyout menu in the bottom-left corner You can switch between languages by clicking on the flyout menu in the bottom-left corner
and selecting the preferred language. and selecting the preferred language.
@ -107,8 +101,8 @@ and selecting the preferred language.
.. note:: .. note::
We set up a GitHub organization and translation workflow to help streamline the We set up a GitHub organization and translation workflow to help streamline the community efforts.
community efforts. Please refer to the translation guide in the `solidity-docs org <https://github.com/solidity-docs>`_ Please refer to the translation guide in the `solidity-docs org <https://github.com/solidity-docs>`_
for information on how to start a new language or contribute to the community translations. for information on how to start a new language or contribute to the community translations.
Contents Contents
@ -161,21 +155,31 @@ Contents
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Additional Material :caption: Advisory content
security-considerations.rst
bugs.rst
050-breaking-changes.rst 050-breaking-changes.rst
060-breaking-changes.rst 060-breaking-changes.rst
070-breaking-changes.rst 070-breaking-changes.rst
080-breaking-changes.rst 080-breaking-changes.rst
.. toctree::
:maxdepth: 2
:caption: Additional Material
natspec-format.rst natspec-format.rst
security-considerations.rst
smtchecker.rst smtchecker.rst
resources.rst
path-resolution.rst
yul.rst yul.rst
path-resolution.rst
.. toctree::
:maxdepth: 2
:caption: Resources
style-guide.rst style-guide.rst
common-patterns.rst common-patterns.rst
bugs.rst resources.rst
contributing.rst contributing.rst
brand-guide.rst
language-influences.rst language-influences.rst
brand-guide.rst