@ -0,0 +1,28 @@ |
|||||||
|
Compiler (Solidity) |
||||||
|
=================== |
||||||
|
|
||||||
|
Clicking the Solidity icon in the icon panel brings you to the Solidty Compiler. |
||||||
|
|
||||||
|
Compiling is triggered when you click the compile button ( **A. in image below**). If you want the file to be compiled each time the file is saved or when another file is selected - check the auto compile checkbox ( **B. in image below**). |
||||||
|
|
||||||
|
If the contract has a lot of dependencies it can take a while to compile - so you use autocompilation at your discretion. |
||||||
|
|
||||||
|
![](images/a-sol-compiler.png) |
||||||
|
|
||||||
|
After each compilation, a list is updated with all the newly compiled |
||||||
|
contracts. The contract compiled can be selected with the Contract pulldown menu ( **C. in image below**). Multiple contracts are compiled when one contract imports other contracts. Selecting a contract will show information about that one. |
||||||
|
|
||||||
|
When the "Compilation Details" button is clicked ( **D. in image below**), a modal opens displaying detailed information about the current selected contract. |
||||||
|
|
||||||
|
From this tab, you can also publish your contract to Swarm (only non |
||||||
|
abstract contracts can be published). |
||||||
|
|
||||||
|
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 when addressing reported issues even if the compiler doesn't |
||||||
|
complain. ([see more](static_analysis.html)) |
@ -1,28 +0,0 @@ |
|||||||
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 a long time to compile, it is possible to disable |
|
||||||
the autocompilation. |
|
||||||
|
|
||||||
![image](images/remix_compiletab.png) |
|
||||||
|
|
||||||
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 contracts can be published). |
|
||||||
|
|
||||||
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 when addressing reported issues even if the compiler doesn't |
|
||||||
complain. ([see more](http://remix.readthedocs.io/en/latest/analysis_tab.html)) |
|
@ -0,0 +1,12 @@ |
|||||||
|
Debugger |
||||||
|
======== |
||||||
|
|
||||||
|
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 the necessary |
||||||
|
features). |
||||||
|
|
||||||
|
To get to the debugger - you can click the debug button in the terminal when a successful or failed transaction appears there. You can also load the module from the plugin manager and then click the bug in the icon panel. Or you can get to the debugger by running the debug command in the console. |
||||||
|
|
||||||
|
|
||||||
|
![](images/a-debugger.png) |
@ -1,12 +0,0 @@ |
|||||||
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 the necessary |
|
||||||
features). |
|
||||||
|
|
||||||
![image](images/remix_debuggertab.png) |
|
||||||
|
|
||||||
For more information about debugging, see the [Tutorial on debugging transactions with Remix |
|
||||||
](http://remix.readthedocs.io/en/latest/tutorial_debug.html) |
|
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 34 KiB |
@ -0,0 +1,39 @@ |
|||||||
|
Importing Source Files in Solidity |
||||||
|
================================== |
||||||
|
|
||||||
|
It is essential to know all many techniques for importing files. |
||||||
|
|
||||||
|
For a tutorial about importing files see this [tutorial](https://github.com/ethereum/remix-workshops/tree/master/loading_via_npm_github_plugin). |
||||||
|
|
||||||
|
For a detailed explanation of the `import` keyword see the |
||||||
|
[Solidity documentation](https://solidity.readthedocs.io/en/develop/layout-of-source-files.html?highlight=import#importing-other-source-files) |
||||||
|
|
||||||
|
Here are a some of the main methods of importing a file: |
||||||
|
|
||||||
|
Importing a file from the browser's local storage |
||||||
|
------------------------------------------------- |
||||||
|
|
||||||
|
Files in Remix can be imported just by specifying their path. Please use ./ for relative paths to increase portability. |
||||||
|
![](images/a-old-tuto_basicimport.png) |
||||||
|
|
||||||
|
Importing a file from your computer's filesystem |
||||||
|
------------------------------------------------- |
||||||
|
|
||||||
|
This method uses **remixd** - the remix daemon. Please go to the [remixd tutorial](remixd.html) for instructions about how to bridge the divide between the browser and your computers filesystem. |
||||||
|
|
||||||
|
|
||||||
|
Importing from GitHub |
||||||
|
--------------------- |
||||||
|
|
||||||
|
It is possible to import files directly from GitHub with URLs like |
||||||
|
`https://github.com/<owner>/<repo>/<path to the file>`. |
||||||
|
|
||||||
|
![](images/a-old-tuto_importgit.png) |
||||||
|
|
||||||
|
Importing from Swarm |
||||||
|
-------------------- |
||||||
|
|
||||||
|
Files can be imported using all URLs supported by swarm. If you do not |
||||||
|
have a swarm node, then use swarm-gateways.net. |
||||||
|
|
||||||
|
![](images/a-old-tuto_importswarm.png) |
@ -0,0 +1,54 @@ |
|||||||
|
Remix-IDE Layout |
||||||
|
============== |
||||||
|
|
||||||
|
The new structure |
||||||
|
-------------------- |
||||||
|
![](images/a-layout1b.png) |
||||||
|
|
||||||
|
1. Icon Panel - click to change which plugin appears in the Swap Panel |
||||||
|
2. Swap Panel - Most but not all plugins will have their GUI here. |
||||||
|
3. Main Panel - In the old layout this was just for editing files. In the tabs can be plugins or files for the IDE to compile. |
||||||
|
4. Terminal - where you will see the results of your interactions with the GUI's. Also you can run scripts here. |
||||||
|
|
||||||
|
Icon Panel at Page Load |
||||||
|
----------------------- |
||||||
|
When you load remix - the icon panel show these icons by default. |
||||||
|
|
||||||
|
![](images/a-icons-at-load.png) |
||||||
|
|
||||||
|
Everything in remix is now a plugin... so the **[Plugin Manager](#plugin-manager)** is very important. |
||||||
|
In the old layout, each basic task in remix was separated into the tabs. Now these tabs are plugins. |
||||||
|
|
||||||
|
But to activate a half a dozen plugins - (or however many you are using) each time the page load is **tedious**. So learn about the **[Environments](#environments)**. |
||||||
|
|
||||||
|
Homepage |
||||||
|
-------- |
||||||
|
|
||||||
|
![](images/a-hometab.png) |
||||||
|
|
||||||
|
The homepage is located in a tab in the Main Panel. |
||||||
|
|
||||||
|
You can also get there by clicking the remix logo at the top of the icon panel. |
||||||
|
|
||||||
|
### Environments |
||||||
|
Clicking on one of the environment buttons loads up a collection of plugins. We currently have a **Solidity** Button and a **Vyper** button. In the future you will be able to save your own environment. |
||||||
|
|
||||||
|
To see all the plugins go to the **plugin manager** - by selecting the plug in the icon panel. |
||||||
|
![](images/a-plug.png) |
||||||
|
|
||||||
|
The environment buttons are time & sanity savers - so you don't need to go to the plugin manager to get started everytime you load the page. |
||||||
|
|
||||||
|
|
||||||
|
Plugin Manager |
||||||
|
--------------- |
||||||
|
|
||||||
|
In order to make Remix flexible for integrating changes into its functionality and for integrating remix into other projects (your's for example), we've now made everything a plugin. This means that you only load the functionality you need. It also means that you need a place to turn off and on plugins - as your needs change. This all happens in the plug manager. |
||||||
|
|
||||||
|
The Plugin Manager is also the place you go when you are creating your own plugin and you want to load your local plugin into Remix. In that case you'd click on the "Connect to a Local Plugin" link at the top of the Plugin Manager panel. |
||||||
|
|
||||||
|
Themes |
||||||
|
--------------- |
||||||
|
|
||||||
|
So you want to work on Remix with a dark theme or a gray theme or just a different theme that the one you are currently looking at? Go to the settings tab and at the bottom is a choice of lots of bootstrap based themes. |
||||||
|
|
||||||
|
![](images/a-themes.png) |
@ -1,13 +1,10 @@ |
|||||||
Packages |
Finding Remix |
||||||
======== |
============= |
||||||
|
|
||||||
This part focuses on using `Remix IDE`, which is a browser based smart contract IDE. We will basically answer the question: |
So if you've found the documentation to Remix but don't know where to find Remix or if you want to run the remix-ide locally and want to find out where to download it - this page is here to help. |
||||||
Where can I use / download `Remix IDE`, and what is the difference between packages? |
|
||||||
|
|
||||||
- An online version is available at [https://remix.ethereum.org](https://remix.ethereum.org). This version is stable and is updated at almost every release. |
- An online version is available at [https://remix.ethereum.org](https://remix.ethereum.org). This version is stable and is updated at almost every release. |
||||||
- An alpha online version is available at [https://remix-alpha.ethereum.org](https://remix-alpha.ethereum.org). This is not a stable version. |
- An alpha online version is available at [https://remix-alpha.ethereum.org](https://remix-alpha.ethereum.org). This is not a stable version. |
||||||
- npm `remix-ide` package `npm install remix-ide -g`. `remix-ide` create a new instance of `Remix IDE` available at [http://127.0.0.1:8080](http://127.0.0.1:8080) and make the current folder available to Remix IDE by automatically starting `remixd`. |
- npm `remix-ide` package `npm install remix-ide -g`. `remix-ide` create a new instance of `Remix IDE` available at [http://127.0.0.1:8080](http://127.0.0.1:8080) and make the current folder available to Remix IDE by automatically starting `remixd`. |
||||||
see [Connection to `remixd`](http://remix.readthedocs.io/en/latest/tutorial_remixd_filesystem.html) for more information about sharing local file with `Remix IDE`. |
see [Connection to `remixd`](http://remix.readthedocs.io/en/latest/tutorial_remixd_filesystem.html) for more information about sharing local file with `Remix IDE`. |
||||||
- Github release: [https://github.com/ethereum/remix-ide/releases](https://github.com/ethereum/remix-ide/releases) . The source code is packaged at every release but still need to be built using `npm run build`. |
- Github release: [https://github.com/ethereum/remix-ide/releases](https://github.com/ethereum/remix-ide/releases) . The source code is packaged at every release but still need to be built using `npm run build`. |
||||||
- Mist: `Remix IDE` can be started and use the local geth node from `Mist` [https://github.com/ethereum/mist/releases](https://github.com/ethereum/mist/releases) |
|
||||||
- Electron: `Remix IDE` wrapped as an Electron app is available at [https://github.com/horizon-games/remix-app](https://github.com/horizon-games/remix-app) |
|
@ -0,0 +1,8 @@ |
|||||||
|
Plugin Manager |
||||||
|
=================== |
||||||
|
|
||||||
|
** This is text copied from layout.md - it needs an image & more info about connect to the local plugin |
||||||
|
|
||||||
|
In order to make Remix flexible for integrating changes into its functionality and for integrating remix into other projects (your's for example), we've now made everything a plugin. This means that you only load the functionality you need. It also means that you need a place to turn off and on plugins - as your needs change. This all happens in the plug manager. |
||||||
|
|
||||||
|
The Plugin Manager is also the place you go when you are creating your own plugin and you want to load your local plugin into Remix. In that case you'd click on the "Connect to a Local Plugin" link at the top of the Plugin Manager panel. |
@ -1,101 +1,4 @@ |
|||||||
Remix Plugin API |
Remix Plugin |
||||||
================ |
============ |
||||||
|
|
||||||
This section provides informations about developing plugin for Remix. |
The best documentation about how to build a plugin is currently in [the readme of remix-plugin repo](https://github.com/ethereum/remix-plugin). Please go [here](https://github.com/ethereum/remix-plugin) to learn all about it. |
||||||
|
|
||||||
Introduction |
|
||||||
------------ |
|
||||||
|
|
||||||
A plugin is basically a front end interface loaded through an iframe. Plugins have access to remix main features through an API. |
|
||||||
This API consist of `notification` and `request` messages built over iframe messages (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) |
|
||||||
plugin resources (html, js, img, ...) needs to have their own hosting, either using normal web or using decentralized infrastructure like Swarm and IPFS. |
|
||||||
|
|
||||||
A plugin declaration is a JSON value which contains the properties `url` and `title`. |
|
||||||
|
|
||||||
``` |
|
||||||
{ |
|
||||||
"title": "<plugin name>", |
|
||||||
"url": "<plugin url>" |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
|
|
||||||
Loading / Registering a plugin in Remix IDE can be done: |
|
||||||
|
|
||||||
- Creating a PR which add a new entry: https://github.com/ethereum/remix-ide/blob/master/src/app/plugin/plugins.js , the plugin can then be loaded directly from remix IDE with a single click. |
|
||||||
- In the settings tab, paste a plugin declaration in the plugin section and hit load. |
|
||||||
- Load Remix IDE with the following url parameters: `pluginurl` and `plugintitle` |
|
||||||
|
|
||||||
Using the API with iframe post message |
|
||||||
-------------------------------------- |
|
||||||
|
|
||||||
A message (either received by the plugin or sent to it) is defined as follow: |
|
||||||
|
|
||||||
``` |
|
||||||
{ |
|
||||||
action: <request, response or notification>, |
|
||||||
key: '<key>', |
|
||||||
type: '<type>', |
|
||||||
value: [<value1>, <value2>, ...], |
|
||||||
id: <call id> <used to track response> |
|
||||||
} |
|
||||||
``` |
|
||||||
|
|
||||||
example: |
|
||||||
|
|
||||||
``` |
|
||||||
window.parent.postMessage(JSON.stringify({ |
|
||||||
action: 'request', |
|
||||||
key: 'config', |
|
||||||
type: 'setConfig', |
|
||||||
value: [document.getElementById('filename').value, document.getElementById('valuetosend').value], |
|
||||||
id: 34 |
|
||||||
}), '*') |
|
||||||
``` |
|
||||||
|
|
||||||
There are 2 ways for interacting with the API, listening on notification and sending request |
|
||||||
|
|
||||||
``` |
|
||||||
function receiveMessage (event) { |
|
||||||
if (event.data.action === 'notification') { |
|
||||||
... |
|
||||||
} |
|
||||||
if (event.data.action === 'response') { |
|
||||||
< listen on the response of the request app / updateTitle > |
|
||||||
< contain event.data.error if any > |
|
||||||
... |
|
||||||
} |
|
||||||
} |
|
||||||
window.addEventListener('message', receiveMessage, false) |
|
||||||
|
|
||||||
window.parent.postMessage(JSON.stringify({ |
|
||||||
action: 'request', |
|
||||||
key: 'app', |
|
||||||
type: 'updateTitle', |
|
||||||
value: ['changed title ' + k++], |
|
||||||
id: 39 |
|
||||||
}), '*') |
|
||||||
``` |
|
||||||
|
|
||||||
from a response point of view, The `error` property is `undefined` if no error happened. In case of error (due to permission, system error, API error, etc...), `error` contains a string describing the error |
|
||||||
|
|
||||||
see [Remix Plugin API usage](./remix_plugin_api.html) for a list of available key / value describing the API. |
|
||||||
|
|
||||||
Using the API with remix extension NPM package |
|
||||||
---------------------------------------------- |
|
||||||
|
|
||||||
The `remix-plugin` NPM package can be used to abstract the iframe layer: |
|
||||||
|
|
||||||
``` |
|
||||||
var extension = require('remix-plugin') |
|
||||||
|
|
||||||
extension.listen('<key>', '<type>', function () {}) |
|
||||||
extension.call('<key>', '<type>', '<array of parameters>', function (error, result) {}) |
|
||||||
|
|
||||||
// examples |
|
||||||
extension.listen('compiler', 'compilationFinished', function () {}) |
|
||||||
extension.call('app', 'detectNetWork', [], function (error, result) {}) |
|
||||||
extension.call('config', 'setConfig', ['<filename>', '<content>'], function (error, result) {}) |
|
||||||
``` |
|
||||||
|
|
||||||
`error` is either null or a string, `result` is an array. |
|
||||||
|
@ -0,0 +1,37 @@ |
|||||||
|
Remix Tutorials |
||||||
|
======================= |
||||||
|
|
||||||
|
There are a series of tutorials in our github repo [remix-workshops](https://github.com/ethereum/remix-workshops). |
||||||
|
|
||||||
|
We are in the process of upgrading these tutorials to use the new Remix layout. |
||||||
|
|
||||||
|
In this repo there tutorials for all levels. |
||||||
|
|
||||||
|
There are tutorials for specific remix functionalities like: |
||||||
|
|
||||||
|
***Deploying*** |
||||||
|
|
||||||
|
Multiple ways of loading files in Remix |
||||||
|
Deploying with libraries |
||||||
|
Deploying a proxy contract |
||||||
|
|
||||||
|
***Testing*** |
||||||
|
|
||||||
|
Testing Examples |
||||||
|
Continuous integration |
||||||
|
|
||||||
|
***Remix Plugin Development*** |
||||||
|
|
||||||
|
Developing a plugin for Remix and deploying it to swarm |
||||||
|
|
||||||
|
***Other*** |
||||||
|
|
||||||
|
EtherAtom (walkthrough slides + screencast) |
||||||
|
Debugging transactions with Remix IDE |
||||||
|
Recording and replaying transactions |
||||||
|
Using a Pipeline plugin for developing Solidity contracts with demo video |
||||||
|
Running scripts in the Remix terminal (batch deployment) (proxy deployment) |
||||||
|
|
||||||
|
***Additional external workshops*** |
||||||
|
|
||||||
|
Using Oraclize plugin in Remix |
@ -0,0 +1,57 @@ |
|||||||
|
Remixd: Get access your local filesystem |
||||||
|
========================================= |
||||||
|
|
||||||
|
`remixd` is an npm module. Its purpose is to give the remix web |
||||||
|
application access to a folder on your local computer. |
||||||
|
|
||||||
|
The code of `remixd` is |
||||||
|
[here](https://github.com/ethereum/remixd) . |
||||||
|
|
||||||
|
`remixd` can be globally installed using the following command: |
||||||
|
`npm install -g remixd` |
||||||
|
|
||||||
|
You can install it just in the directory of your choice using this command: |
||||||
|
`npm install remixd` |
||||||
|
|
||||||
|
Then `remixd -s <absolute-path-to-the-shared-folder> --remix-ide <your-remix-ide-URL-instance>` will start `remixd` and will share the given folder. |
||||||
|
|
||||||
|
For example, to sync your local folder to the official Remix IDE, |
||||||
|
`remixd -s <absolute-path-to-the-shared-folder> --remix-ide https://remix.ethereum.org` |
||||||
|
|
||||||
|
The folder is shared using a websocket connection between `Remix IDE` |
||||||
|
and `remixd`. |
||||||
|
|
||||||
|
Be sure the user executing `remixd` has read/write permission on the |
||||||
|
folder. |
||||||
|
|
||||||
|
There is an option to run remixd in read-only mode, use `--read-only` flag. |
||||||
|
|
||||||
|
**Warning!** |
||||||
|
|
||||||
|
`remixd` provides `full read and write access` to the given folder for `any |
||||||
|
application` that can access the `TCP port 65520` on your local host. |
||||||
|
|
||||||
|
From `Remix IDE`, in the Plugin Manager you need to activate the remixd plugin. |
||||||
|
|
||||||
|
A modal dialog will ask confirmation |
||||||
|
|
||||||
|
Accepting this dialog will start a session. |
||||||
|
|
||||||
|
If you do not have `remixd` running in the background - another modal will open up and it will say: |
||||||
|
|
||||||
|
``` |
||||||
|
Cannot connect to the remixd daemon. |
||||||
|
Please make sure you have the remixd running in the background. |
||||||
|
``` |
||||||
|
|
||||||
|
Assuming you don't get the 2nd modal, your connection to the remixd daemon is successful. The shared folder will be available in the file explorer. |
||||||
|
|
||||||
|
**When you click the activation of remixd is successful - there will NOT be an icon that loads in the icon panel.** |
||||||
|
|
||||||
|
Click the File Explorers icon and in the swap panel you should now see the folder for `localhost`. |
||||||
|
|
||||||
|
Click on the `localhost connection` icon: |
||||||
|
|
||||||
|
![](images/a-remixd-success.png) |
||||||
|
|
||||||
|
|
@ -1,9 +1,11 @@ |
|||||||
Settings |
Settings |
||||||
======== |
======== |
||||||
|
|
||||||
This section displays the current compiler version and allows one to change to another version. |
To get to **Settings** click the gear a the very bottom of the icon panel. |
||||||
|
|
||||||
![image](images/remix_settingstab.png) |
You can find a link to the homepage (if you closed it) as well as a link to our Gitter Channel and for you aesthetes out there, we now have a rather large list of themes. |
||||||
|
|
||||||
|
![](images/a-themes.png) |
||||||
|
|
||||||
Another important settings: |
Another important settings: |
||||||
|
|
@ -1,9 +0,0 @@ |
|||||||
Support tab in 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 support |
|
||||||
channel](http://gitter.im/ethereum/remix) |
|
||||||
|
|
||||||
![image](images/remix_supporttab.png) |
|
@ -1,10 +0,0 @@ |
|||||||
Eat the Block tutorials |
|
||||||
======================= |
|
||||||
|
|
||||||
This section list Remix related tutorials: |
|
||||||
|
|
||||||
[Youtube channel](https://www.youtube.com/playlist?list=PLbbtODcOYIoH7597VZ4sTXRKJkuhMAqYy) |
|
||||||
|
|
||||||
[Introduction](https://www.youtube.com/watch?v=4CsH5xTxhSA&index=3&t=738s&list=PLbbtODcOYIoH7597VZ4sTXRKJkuhMAqYy) |
|
||||||
|
|
||||||
[Remix File explorer](https://www.youtube.com/watch?v=nAI_Cr5Y8JY) |
|
@ -1,34 +0,0 @@ |
|||||||
Importing Source Files in Solidity |
|
||||||
================================== |
|
||||||
|
|
||||||
This tutorial will show you how to import local and external files. |
|
||||||
|
|
||||||
The compilation result will also contain contracts implemented in the |
|
||||||
imported files. |
|
||||||
|
|
||||||
For a detailed explanation of the `import` keyword see the |
|
||||||
[Solidity documentation](https://solidity.readthedocs.io/en/develop/layout-of-source-files.html?highlight=import#importing-other-source-files) |
|
||||||
|
|
||||||
Importing a local file |
|
||||||
---------------------- |
|
||||||
|
|
||||||
Other files in Remix can be imported just by specifying their path. |
|
||||||
Please use ./ for relative paths to increase portability. |
|
||||||
|
|
||||||
![image](tuto_basicimport.png) |
|
||||||
|
|
||||||
Importing from GitHub |
|
||||||
--------------------- |
|
||||||
|
|
||||||
It is possible to import files directly from GitHub with URLs like |
|
||||||
`https://github.com/<owner>/<repo>/<path to the file>`. |
|
||||||
|
|
||||||
![image](tuto_importgit.png) |
|
||||||
|
|
||||||
Importing from Swarm |
|
||||||
-------------------- |
|
||||||
|
|
||||||
Files can be imported using all URLs supported by swarm. If you do not |
|
||||||
have a swarm node, swarm-gateways.net will be used instead. |
|
||||||
|
|
||||||
![image](tuto_importswarm.png) |
|
@ -1,50 +0,0 @@ |
|||||||
Access your local filesystem by using remixd |
|
||||||
=================================================== |
|
||||||
|
|
||||||
`remixd` is an npm module. Its purpose is to give the remix web |
|
||||||
application access to a folder from your local computer. |
|
||||||
|
|
||||||
The code of `remixd` can be checked out |
|
||||||
[here](https://github.com/ethereum/remixd) . |
|
||||||
|
|
||||||
`remixd` can be globally installed using the following command: |
|
||||||
`npm install -g remixd`. |
|
||||||
|
|
||||||
Then `remixd -s <absolute-path-to-the-shared-folder> --remix-ide <your-remix-ide-URL-instance>` will start `remixd` |
|
||||||
and share the given folder. |
|
||||||
|
|
||||||
For example, to sync your local folder to the official Remix IDE, |
|
||||||
`remixd -s <absolute-path-to-the-shared-folder> --remix-ide https://remix.ethereum.org` |
|
||||||
|
|
||||||
The folder is shared using a websocket connection between `Remix IDE` |
|
||||||
and `remixd`. |
|
||||||
|
|
||||||
Be sure the user executing `remixd` has read/write permission on the |
|
||||||
folder. |
|
||||||
|
|
||||||
There is an option to run remixd in read-only mode, use `--read-only` flag. |
|
||||||
|
|
||||||
**Warning!** |
|
||||||
|
|
||||||
`remixd` provides `full read and write access` to the given folder for `any |
|
||||||
application` that can access the `TCP port 65520` on your local host. |
|
||||||
|
|
||||||
From `Remix IDE`, you will need to activate the connection. |
|
||||||
|
|
||||||
Click on the `localhost connection` icon: |
|
||||||
|
|
||||||
![image](remixd_noconnection.png) |
|
||||||
|
|
||||||
A modal dialog will ask confirmation |
|
||||||
|
|
||||||
![image](remixd_alert.png) |
|
||||||
|
|
||||||
Accepting this dialog will start a session. Once the connection is made, |
|
||||||
the status will update and the connection icon should shows up in green. |
|
||||||
|
|
||||||
Hovering the icon will give more connection status information. |
|
||||||
|
|
||||||
At this point if the connection is successful, the shared folder will be |
|
||||||
available in the file explorer. |
|
||||||
|
|
||||||
![image](remixd_connectionok.png) |
|
@ -1,9 +1,9 @@ |
|||||||
Unit Testing |
Unit Testing |
||||||
============ |
============ |
||||||
|
|
||||||
The unit testing tab allows to run unit testing. |
Click the "double check" icon to get to the unit testing plugin. If you don't see this icon, go to the plugin manager and load up the unit testing plugin. |
||||||
|
|
||||||
![image](images/remix_unittest.png) |
![](images/a-unit-testing1.png) |
||||||
|
|
||||||
Generate test File |
Generate test File |
||||||
------------------ |
------------------ |
@ -1,14 +0,0 @@ |
|||||||
Building Smart Contracts with Remix |
|
||||||
======================= |
|
||||||
|
|
||||||
We prepared a tutorial that will help you build DApps with Remix. In this tutorial, you learn how to build smart contracts, how to deploy them and how to interact with them. Then we show you how to connect your frontend with the blockchain by using web3.js. |
|
||||||
|
|
||||||
### Let's get started |
|
||||||
|
|
||||||
This tutorial was used in workshops at ethCC, Edcon, and DappCon. |
|
||||||
|
|
||||||
You can [watch the Edcon presentation talk](https://www.youtube.com/watch?v=nAI_Cr5Y8JY) and here are the [workshop slides](https://slides.com/ninabreznik/deck-11-13#/). |
|
||||||
(May 3, 2018) |
|
||||||
|
|
||||||
Here are the [latest slides (hosted on swarm)](http://30400.swarm-gateways.net/bzz:/49277e2a16baf5576c9f54204c70dc403a425c3df85424864fe04ad6dfc609bc/) and here are the [latest slides (not on swarm)](https://www.updig.is/pdf/remix-chez-coinhouse.pdf). |
|
||||||
(Oct 16, 2018) |
|