remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
remix-project/README.md

104 lines
3.7 KiB

8 years ago
# REMIX
8 years ago
[![Join the chat at https://gitter.im/ethereum/remix](https://badges.gitter.im/ethereum/remix.svg)](https://gitter.im/ethereum/remix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
9 years ago
Ethereum IDE and tools for the web
9 years ago
8 years ago
## REMIX WEBSITE:
7 years ago
Remix is avalaible at http://ethereum.github.io/remix. Note that this repository hosts a debugger module.
The Remix IDE repository is at https://github.com/ethereum/browser-solidity and an online version is at http://remix.ethereum.org.
8 years ago
You can use it either inside Mist or by connecting to geth or eth.
Note that connecting to Geth does not work through https.
8 years ago
8 years ago
You'll have to run your own node using the following parameters:
8 years ago
8 years ago
*DO NOT DO THIS IF geth/eth STORES PRIVATE KEYS* External system might be able to access your node through the RPC server.
8 years ago
Using Geth:
8 years ago
geth --rpc --rpcapi 'web3,eth,debug' --rpcport 8545 --rpccorsdomain '*'
8 years ago
Using Eth:
eth -j --rpccorsdomain '*'
8 years ago
8 years ago
geth will run the rpc server on http://localhost:8545, remix uses by default this url.
Remix will use this instance of Geth to retrieve the transaction and the associated trace.
This instance should **only** be used for debugging purposes. Never use features that could have an impact on your keys (do not unlock any keys, do not use this instance together with the wallet, do not activate the admin web3 API).
8 years ago
## INSTALLATION:
9 years ago
9 years ago
Brief instructions to build for linux(Todo add other platforms) we will add detailed instructions later
9 years ago
Install eth or geth, npm and node.js (see https://docs.npmjs.com/getting-started/installing-node), then do:
* `git clone https://github.com/ethereum/remix`
* `cd remix`
* `npm install`
* `npm start`
open `remix/index.html` in your browser.
## TEST:
* For unit tests run `npm test`
9 years ago
* For local headless browser tests
* run once to install selenium: `npm run selenium-install`
* every time you want to run local browser tests, run: `npm run test-browser`
## DEVELOPING:
Run `npm run start_dev` and open `http://127.0.0.1:8080` in your browser.
Start developing and see your browser live reload when you save files
9 years ago
8 years ago
## REMIX First Step:
8 years ago
8 years ago
Once remix is connected to a node, you will be able to debug transactions.
There's two way of doing that:
- using a block number and a transaction index.
- using a transaction hash.
8 years ago
When loading the transaction succeed, the hash, from and to field will show up.
8 years ago
Then the vm trace is loaded.
8 years ago
8 years ago
The debugger itself contains several controls that allow stepping over the trace and seing the current state of a selected step.
8 years ago
8 years ago
#### Slider and Stepping action:
8 years ago
The slider allows to move quickly from a state to another.
Stepping actions are:
- Step Into Back
- Step Over Back
- Step Over Forward
- Step Into Forward
- Jump Next Call (this will select the next state that refers to a context changes - CALL, CALLCODE, DELEGATECALL, CREATE)
8 years ago
#### State Viewer:
8 years ago
The upper right panel contains basic informations about the current step:
- VMTraceStep: the index in the trace of the current step.
- Step
- Add memory
- Gas: gas used by this step
- Remaining gas: gas left
- Loaded address: the current code loaded, refers to the executing code.
The other 6 panels describe the current selected state:
- Instructions list: list of all the instruction that defines the current executing code.
- Stack
- Storage Changes
- Memory
8 years ago
- Call Data$
8 years ago
- Call Stack
8 years ago
## CODING STYLE:
Remix uses npm coding style: https://docs.npmjs.com/misc/coding-style
Please be sure your code is compliant with this coding standard before sending PR.
There's on the above page a bunch of links that propose integration with developer tools (Emacs, Atom, ...).
You can also run 'npm run test' to check your local repository against the coding style.