Skip to content
This repository has been archived by the owner on Mar 3, 2021. It is now read-only.

Commit

Permalink
proof reading docs pass 1
Browse files Browse the repository at this point in the history
  • Loading branch information
ryestew committed Sep 13, 2017
1 parent 30cc9b9 commit 56ece68
Show file tree
Hide file tree
Showing 12 changed files with 82 additions and 78 deletions.
14 changes: 7 additions & 7 deletions docs/analysis_tab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,26 @@ Analysis
========

This section gives information about the last compilation.
A new analysis is by default run at each compilation.
By default, a new analysis is run at each compilation.

It gives detailed information about the contract code and is a good way to avoid code mistakes and enforce best practices.
The analysis tab gives detailed information about the contract code. It can help you avoid code mistakes and to enforce best practices.

.. image:: images/remix_analysistab.png

Here the list of analyzers:
Here is the list of analyzers:

- Security:
- Transaction origin: Warn if tx.origin is used
- Transaction origin: Warns if tx.origin is used
- Check effects: Avoid potential reentrancy bugs
- Inline assembly: Use of Inline Assembly
- Block timestamp: Semantics maybe unclear
- Low level calls: Semantics maybe unclear
- Block.blockhash usage: Semantics maybe unclear

- Gas & Economy:
- Gas costs: Warn if the gas requirements of functions are too high
- Gas costs: Warns if the gas requirements of the functions are too high
- This on local calls: Invocation of local functions via this

- Miscellaneous:
- Constant functions: Check for potentially constant functions
- Similar variable names: Check if variable names are too similar
- Constant functions: Checks for potentially constant functions
- Similar variable names: Checks if variable names are too similar
6 changes: 3 additions & 3 deletions docs/compile_tab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ After each compilation, a list is updated with all the newly compiled contracts.

`Details` modal dialog displays detailed information about the current selected contract.

From this tab, you can also publish your contract to Swarm (only non abstract contract can be published).
From this tab, you can also publish your contract to Swarm (only non abstract contracts can be published).

Published data contains notably the ``abi`` and solidity source code.
Published data notably contains the ``abi`` and solidity source code.

After a contract is published, you can find its metadata information using the `bzz` URL located in the details modal dialog ``SWARM LOCATION``.

Compilation Errors and Warning are displayed below the contract section. At each compilation, the static analysis tab builds a report. It is very valuable to address reported issues even if the compiler doesn't complain.
Compilation Errors and Warning are displayed below the contract section. At each compilation, the static analysis tab builds a report. It is very valuable when addressing reported issues even if the compiler doesn't complain.
(see :doc:`../analysis_tab`)
4 changes: 2 additions & 2 deletions docs/debugger_tab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ Debugging

This module allows you to debug the transaction.
It can be used to deploy transactions created from Remix and already mined transactions.
(debugging works only if the current environment provides needed features).
(debugging works only if the current environment provides the necessary features).

.. image:: images/remix_debuggertab.png

All informations about debugging are describing in the following link:
For more information about debugging, click on the following link:
:doc:`../tutorial_debug`
4 changes: 2 additions & 2 deletions docs/file_explorer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ The file explorer lists by default all the files stored in your browser. You can

.. image:: images/remix_file_explorer_browser.png

Note that clearing the browser storage will permanently delete all the solidity sources you wrote. To avoid this, you can use Remixd, which enables you to store and sync files in the browser with your local files (for more information see :doc:`../tutorial_remixd_filesystem`)
Note that clearing the browser storage will permanently delete all the solidity files you wrote. To avoid this, you can use Remixd, which enables you to store and sync files in the browser with your local computer (for more information see :doc:`../tutorial_remixd_filesystem`)

.. image:: images/remix_file_explorer_menu.png

From the left to the right:
We will start by reviewing at the icons at the top left - from left to the right:

Create new File
---------------
Expand Down
16 changes: 8 additions & 8 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Remix - Solidity IDE
Remix is an IDE for the smart contract programming language Solidity and has
an integrated debugger and testing environment.

An up to date online version is accessible at `remix.ethereum.org <http://remix.ethereum.org>`_
An up to date online version is available at `remix.ethereum.org <http://remix.ethereum.org>`_

This page will host documentation and tutorial about features Remix provides.

Expand All @@ -13,19 +13,19 @@ Please go to `solidity.readthedocs.io <http://solidity.readthedocs.io>`_ for any
Overview
--------

Remix provides an integrated development environment for smart contract development.
It focuses on development and deployment of Solidity written smart contract.
Remix provides an integrated development environment (IDE) for smart contract development.
It focuses on the development and deployment of Solidity written smart contracts.

Remix is a good solution if you intend to:

- Develop smart contract (remix integrates a solidity editor).
- Debug smart contract execution.
- Develop smart contracts (remix integrates a solidity editor).
- Debug a smart contract's execution.
- Access the state and properties of already deployed smart contract.
- Debug already committed transaction.
- Analyze solidity code to reduce coding mistake and enforce best practices.
- Together with Mist (or any tool which inject web3), Remix can be used to test and debug Dapp (see :doc:`../tutorial_mist`)
- Analyze solidity code to reduce coding mistakes and to enforce best practices.
- Together with Mist (or any tool which inject web3), Remix can be used to test and debug a Dapp (see :doc:`../tutorial_mist`)

Developping smart contract requires a deep understanding of the associated Blockchain technology.
Developing smart contract requires a deep understanding of the associated Blockchain technology.

!! Don't use Remix against a production network unless you are completely sure what you are doing !!

Expand Down
27 changes: 15 additions & 12 deletions docs/quickstart_javascriptvm.rst
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
Quick Start using the JavaScript VM
===================================

There are 3 type of environments Remix can be plugged to (see :doc:`../run_tab`)
both ``Web3 provider`` and ``Injected provider`` requires the use of an external tool.
There are 3 type of environments Remix can be plugged to: ``Javascript VM``, ``Injected provider``, or ``Web3 provider``. (see :doc:`../run_tab`)

An Ethereum node for ``Web3 provider`` and Mist or Metamask for ``Injected provider``.
Both ``Web3 provider`` and ``Injected provider`` require the use of an external tool.

The ``JavaScript VM`` mode is convenient because every execution run in your browser.
Thus reloading the page will restart Remix with en empty state. it might also be better to use an external node for better performances.
The external tool for ``Web3 provider`` is an Ethereum node the tools for ``Injected provider`` are Mist or Metamask.

The ``JavaScript VM`` mode is convenient because each execution runs in your browser.
Thus reloading the page will restart Remix with an empty state.

So for performance purposes, it might also be better to use an external node.

Selecting the VM mode
---------------------
Expand Down Expand Up @@ -40,24 +43,24 @@ Sample contract
}
}
That contract is very very basic, the goal is to quiclky start to create and to interact with.
This contract is very basic. The goal is to quickly start to create and to interact with a sample contract.

Deploying an instance
---------------------

The ``Compile tab`` displays informations related to the current contract (note that there can be more than one) (see :doc:`../compile_tab`).
The ``Compile tab`` displays information related to the current contract (note that there can be more than one) (see :doc:`../compile_tab`).

Switching now to ``Run tab`` allows to deploy an instance of the contract in the ``JavaScript VM`` state.
Moving on, in the ``Run tab`` select, ``JavaScript VM`` to specify that you are going to deploy an instance of the contract in the ``JavaScript VM`` state.

.. image:: images/remix_quickstart_javascriptvm_creation.png

The constructor of ``testContract`` needs a parameter (of type ``uint``). give any value and click on ``Create``.
The constructor of ``testContract`` needs a parameter (of type ``uint``). Give any value and click on ``Create``.

The transaction which deploy the instance of ``testContract`` is created.
The transaction which deploys the instance of ``testContract`` is created.

That could take several seconds in a "normal" blockchain (time for the transaction to be mined), in our the case execution is immediate (JavaScript VM).
In a "normal" blockchain, it can take several seconds to execute. This is the time for the transaction to be mined. However, because we are using the ``JavaScript VM``, our execution is immediate.

Looking at the terminal will inform you about the transaction. You can see details and start debugging it.
The terminal will inform you about the transaction. You can see details there and start debugging.

The newly created instance is displayed in the ``run tab``.

Expand Down
26 changes: 13 additions & 13 deletions docs/run_tab.rst
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
Running transactions
====================

This tab is an important section of Remix. It allows you to send transactions to the current environment.
The Run tab is an important section of Remix. It allows you to send transactions to the current environment.

.. image:: images/remix_runtab.png

Run Setup
---------

These are the settings that enables you to directly influence the transaction execution:
The following settings allow you to directly influence the transaction execution:

- Environment:
- ``JavaScript VM``: All the transactions will be executed in a sandbox blockchain in the browser. That means nothing will be persisted and a page reload will restart a new blockchain from scratch, the old one will not be saved.
- ``JavaScript VM``: All the transactions will be executed in a sandbox blockchain in the browser. This means nothing will be persisted and a page reload will restart a new blockchain from scratch, the old one will not be saved.

- ``Injected Provider``: Remix will connect to an injected web3 provider. ``Mist`` and ``Metamask`` are example of providers that inject web3, thus can be used with this option.

- ``Web3 Provider``: Remix will connect to a remote node. You will need to provide the URL address to the selected provider: geth, parity or any Ethereum client.

- Account: list of accounts associated with the current environment (and their associated balances)
- Gas Limit: maximum amount of gas that can be set for all the transactions created in Remix
- Value: amount of value for the next created transaction (this value is always reset to 0 after each transaction execution)
- Account: the list of accounts associated with the current environment (and their associated balances).
- Gas Limit: the maximum amount of gas that can be set for all the transactions created in Remix.
- Value: the amount of value for the next created transaction (this value is always reset to 0 after each transaction execution).

.. image:: images/remix_runtab_example.png

Expand All @@ -28,27 +28,27 @@ Initiate Instance

This section contains the list of compiled contracts and 2 actions:

- ``At Address`` assumes the given address is an instance of the selected contract. It is then possible to interact with an already deployed contract. There's no check at this point so be careful when using this feature and be sure you trust the contract at that address.
- ``At Address`` assumes the given address is an instance of the selected contract. It is then possible to interact with an already deployed contract. There's no check at this point, so be careful when using this feature, and be sure you trust the contract at that address.

- ``Create`` send a transaction that deploy the selected contract. When the transaction is mined the newly created instance will be added (this might take several seconds). (note that if the ``constructor`` has parameters you need to specify them).
- ``Create`` send a transaction that deploys the selected contract. When the transaction is mined, the newly created instance will be added (this might take several seconds). Note that if the ``constructor`` has parameters, you need to specify them.

Pending Instances
-----------------

Validating a transaction take several seconds. During this time the GUI shows it in a pending mode. When transaction is mined the number of pending transactions is updated
Validating a transaction take several seconds. During this time, the GUI shows it in a pending mode. When transaction is mined the number of pending transactions is updated
and the transaction is added to the log (see :doc:`../terminal`)

Instances List
Instance List
--------------

This section contains list of instances to interact with.
This section contains a list of instances to interact with.

Several cases apply:
- The called function is declared as ``constant`` or ``pure`` in Solidity. The action has a blue background, clicking on it does not create a new transaction. (this is not necessary because there is not state changes) but will update the return value of the function.
- The called function is declared as ``constant`` or ``pure`` in Solidity. The action has a blue background, clicking it does not create a new transaction. Clicking it is not necessary because there are not state changes - but it will update the return value of the function.

- The called function has no special keywords. The action has a light red background, clicking on does create a new transaction. But this transaction cannot accept any amount of Ether.

- The called function is declared as ``payable`` in Solidity. The action has a red background, clicking on it does create a new transaction and this transaction can accept value.
- The called function is declared as ``payable`` in Solidity. The action has a red background, clicking it does create a new transaction and this transaction can accept value.

For more information about Solidity modifier, see `Solidity modifier <http://solidity.readthedocs.io/en/develop/miscellaneous.html?highlight=pure#modifiers>`_ .

Expand Down
6 changes: 3 additions & 3 deletions docs/settings_tab.rst
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Settings
========

This section displays the current compiler version and allows to change to another version.
This section displays the current compiler version and allows one to change to another version.

.. image:: images/remix_settingstab.png

Settings, available here:

- Text wrap: defines if the text in the editor should be wrapped.
- Text wrap: controls if the text in the editor should be wrapped.
- Enable optimization: defines if the compiler should enable optimization during compilation. Enabling this option saves execution gas.
It is useful to enable optimization for contracts ready to be deployed in production
but could lead to some inconsistency when debugging such a contract.
but could lead to some inconsistencies when debugging such a contract.
2 changes: 1 addition & 1 deletion docs/solidity_editor.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Solidity Editor
===============

Remix editor triggers a compilation each time the current file is changed or another file is selected. It also provides syntax highlighting mapped to solidity keywords.
The Remix editor recompiles the code each time the current file is changed or another file is selected. It also provides syntax highlighting mapped to solidity keywords.

.. image:: images/remix_editor.png

Expand Down
2 changes: 1 addition & 1 deletion docs/support_tab.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Support
=======

This section provides a link to the Remix issues where users can report a bug or suggest a feature, other useful links and and it displays a `Remix developers' channel <http://gitter.im/ethereum/remix>`_
This section provides a link to Remix Issues where users can report a bug or suggest a feature, as well as providing other useful links. It also displays a `Remix developers' channel <http://gitter.im/ethereum/remix>`_

.. image:: images/remix_supporttab.png
22 changes: 11 additions & 11 deletions docs/tutorial_debug.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ From the Transaction GUI
~~~~~~~~~~~~~~~~~~~~~~~~

We will not explain in detail here how to write or deploy contract.
Let us start with a basic contract (replace this one by yours):
Let us start with a basic contract (replace this one by your's):

.. code-block:: none
Expand Down Expand Up @@ -53,9 +53,9 @@ Let us start with a basic contract (replace this one by yours):
}
}
For the purpose of this tutorial we will run the ``JavaScript VM`` (that's the default mode if you don't use Remix with Mist or Metamask) which simulates a custom blockchain. You could do the same using a proper backend node.
For the purpose of this tutorial, we will run the ``JavaScript VM`` (that's the default mode when you don't use Remix with Mist or Metamask). This simulates a custom blockchain. You could do the same using a proper backend node.

Let's deploy the contract:
Now, let's deploy the contract:

Right panel / Red button ``Create``

Expand All @@ -80,7 +80,7 @@ From the Debugger

The debugger can be found in the right panel / 5th tab from the left.

You can start a debug session by providing either a ``transaction hash`` or a ``block number`` and ``transaction index``
You can start a debug session by providing either a ``transaction hash`` or a ``block number`` and ``transaction index``.

.. image:: remix3.png

Expand All @@ -89,10 +89,10 @@ Click the ``play`` button to start debugging.
Using the debugger
------------------

The debugger allows to see detailed informations about the transaction execution. It uses the editor (left panel) to display the location
The debugger allows one to see detailed informations about the transaction's execution. It uses the editor (left panel) to display the location
in the source code where the current execution is.

First the transaction panel display basic and simple information about the current transaction.
The transaction panel displays basic information about the current transaction.

.. image:: remix_debugtransactioninfo.png

Expand All @@ -104,32 +104,32 @@ step over back, step into back, step into forward, step over forward, jump out (

.. image:: remix_navigation.png

11 panels give detailed informations about the execution:
11 panels give detailed information about the execution:

Instructions
~~~~~~~~~~~~

.. image:: remix_debuginstructions.png

This panel displays the bytecode of the current executing contract, the current step is highlighted.
The Instructions panel displays the bytecode of the current executing contract- with the current step highlighted.

Important note:
When this panel is hidden, the slider will have a courser granularity and only stop at expression boundaries, even if they are compiled into multiple EVM instructions.
When the panel is diplayed, it will be possible to step over every instruction, even those that refers to the same expression.
When the panel is displayed, it will be possible to step over every instruction, even those that refers to the same expression.

Solidity Locals
~~~~~~~~~~~~~~~

.. image:: remix_soliditylocals.png

That panel displays local variables associated with the current context.
The Solidity Locals panel displays local variables associated with the current context.

Solidity State
~~~~~~~~~~~~~~

.. image:: remix_soliditystate.png

That panel displays state variables of the current executing contract.
The Solidity State panel displays state variables of the current executing contract.

Low level panels
~~~~~~~~~~~~~~~~
Expand Down
Loading

0 comments on commit 56ece68

Please sign in to comment.