doc first draft

pull/7/head
yann300 7 years ago
parent 142f6de44c
commit 97684d4ed2
  1. 26
      docs/analysis_tab.rst
  2. 19
      docs/compile_tab.rst
  3. 10
      docs/debugger_tab.rst
  4. 35
      docs/file_explorer.rst
  5. 33
      docs/index.rst
  6. 0
      docs/make.bat
  7. 52
      docs/run_tab.rst
  8. 11
      docs/settings_tab.rst
  9. 10
      docs/solidity_editor.rst
  10. 4
      docs/support_tab.rst
  11. 9
      docs/tabs_panel.rst
  12. 12
      docs/terminal.rst

@ -0,0 +1,26 @@
Analysis
========
This section gives information about the last compilation.
A new analysis is by default run at each compilation.
It gives detailed informations about the contract code and is a good way to avoid code mistakes and enforce best practices.
Here the list of analyzers:
- Security:
- Transaction origin: Warn 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
- 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

@ -0,0 +1,19 @@
Compiling contracts
===================
By default Remix triggers a compilation each time the current file is changed or another file is selected.
If the contract has a lot of dependencies and takes long to compile, it is possible to disable `autocompilation`.
After each compilation, a list is updated with all the newly compiled contracts.
`Details` shows up a modal dialog displaying information related to current selected contract.
It is possible to publish contract to Swarm (only non abstract contract can be published).
Published data contains notably the ``abi`` and solidity source code.
After a contract is published, metadata information can be accessed 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 seems not to complain.
(see :doc:`../analysis_tab`)

@ -0,0 +1,10 @@
Debugging
=========
This module allows to debug transaction.
It can be used to deploy transaction created from Remix and already mined transactions.
(debugging works only if the current environment provides needed features).
All informations about debugging are describing in the following link:
:doc:`../tutorial_debug`

@ -0,0 +1,35 @@
File Explorer
=============
The file explorer list by default all the files (under `browser`) stored in your browser. Files can be renamed, removed, added.
Note that clearing the browser storage will permanently delete all the solidity sources you wrote.
A solution would be to use Remixd (see :doc:`../tutorial_remixd_filesystem`)
From the left to the right:
Create new File
---------------
This action will create a new file in the `browser` explorer.
Add Local File
--------------
This allows to select files from the filesystem and import them to the remix browser storage.
Publish to Gist
---------------
This allows to publish files from the browser storage to an anonymous public gist.
Copy to another instance
------------------------
This allows to copy files from the browser storage to another instance (URL) of Remix.
Connect to Localhost
--------------------
This allows to use file located in your file system (see :doc:`../tutorial_remixd_filesystem`).

@ -10,6 +10,39 @@ This page will host documentation and tutorial about features Remix provides.
Please go to `solidity.readthedocs.io <http://solidity.readthedocs.io>`_ for any information regarding ``Solidity`` Please go to `solidity.readthedocs.io <http://solidity.readthedocs.io>`_ for any information regarding ``Solidity``
Overview
--------
Remix provides an integrated development environment for smart contract development.
It focuses on development and deployment of Solidity written smart contract.
Remix is a good solution if you intend to:
- Develop smart contract (remix integrates a solidity editor).
- Debug smart contract 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`)
Developping 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 !!
This documentation describes all the features remix provides.
The GUI can be separated in 4 parts. Click on one the link to get more information.
- :doc:`../file_explorer`
- :doc:`../solidity_editor`
- :doc:`../terminal`
- :doc:`../tabs_panel`
- :doc:`../compile_tab`
- :doc:`../run_tab`
- :doc:`../settings_tab`
- :doc:`../debugger_tab`
- :doc:`../analysis_tab`
- :doc:`../support_tab`
Tutorial Tutorial
-------- --------

@ -0,0 +1,52 @@
Running transactions
====================
This tab is an important section of Remix, it allows sending transactions to the current environment.
Run Setup
---------
this includes settings that are direclty relevant to transaction execution:
- Environment:
- ``JavaScript VM``: All the transactions are executed in a sandbox blockchain in the browser. That means nothing is 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 application that inject web3 and thus can be used with this option.
- ``Web3 Provider``: Remix will connect to a remote node (an URL need to be provided). This provider can be geth, parity or any Ethereum client.
- Account: list of accounts associated with the current environment (and their associated balances)
- Gas Limit is the max amount of gas that can be set for all the transactions created in Remix.
- Value is the amount of value set for the next to be created transaction (this value is always reset to 0 after each transaction execution).
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.
- ``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).
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
and the transaction is added to the log (see :doc:`../terminal`)
Instances List
--------------
This section contains 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 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.
For more information about Solidity modifier, see `Solidity modifier <http://solidity.readthedocs.io/en/develop/miscellaneous.html?highlight=pure#modifiers>`_ .
If a function requires input parameters, it is required to specify them.

@ -0,0 +1,11 @@
Settings
========
This section contains general settings:
- It displays the current compiler version and allows to change to current version.
- Define if the text should be wrapped in the editor.
- Define if the compiler enables optimization during compilation. Enabling this option save execution gas.
It is interesting to enable optimization for contracts ready to be deployed in production
but could lead to some inconsistency when debugging such a contract.

@ -0,0 +1,10 @@
Solidity Editor
===============
- This editor provides syntax highlighting mapped to solidity keywords.
- It display opened files as tabs.
- Compilation Warning and Error are displayed in the gutter.
- By default Remix triggers a compilation each time the current file is changed or another file is selected.
- Remix saves the current file continously (5s after the last changes).
- +/- on the top left corner increase/decrease the font size.

@ -0,0 +1,4 @@
Support
=======
This section provides a list of usefull links and an access to the `Remix channel <http://gitter.im/ethereum/remix>`_

@ -0,0 +1,9 @@
Tabs Panel
==========
- :doc:`../compile_tab`
- :doc:`../run_tab`
- :doc:`../settings_tab`
- :doc:`../debugger_tab`
- :doc:`../analysis_tab`
- :doc:`../support_tab`

@ -0,0 +1,12 @@
Terminal
========
The Terminal is used for several use cases:
- Integrates a JavaScript interpreter and the ``web3`` object. It is possible to execute JavaScript script which interacts with the current context. (note that ``web3`` is only available if the ``web provider`` or ``injected provider`` mode is selected)
- Display important action made on the GUI like sending a new transaction.
- Display transactions that are mined in the current context. It is possible to display all transactions or only transactions that refers to contract Remix knows (e.g transaction created from the remix GUI).
- Allows filtering and clearing the data.
Loading…
Cancel
Save