@ -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 |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 112 KiB |
After Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 90 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: 11 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 221 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) |
@ -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: |
||||
Where can I use / download `Remix IDE`, and what is the difference between packages? |
||||
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. |
||||
|
||||
- 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. |
||||
- 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`. |
||||
- 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,104 +0,0 @@ |
||||
Using the JavaScript VM |
||||
======================== |
||||
|
||||
There are 3 type of environments Remix can be plugged to: |
||||
`Javascript VM`, `Injected provider`, or `Web3 provider`. (for details see [Running transactions](http://remix.readthedocs.io/en/latest/run_tab.html)) |
||||
|
||||
Both `Web3 provider` and `Injected provider` require the use of an |
||||
external tool. |
||||
|
||||
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 |
||||
--------------------- |
||||
|
||||
Make sure the VM mode is selected. All accounts displayed in `Accounts` |
||||
should have 100 ether. |
||||
|
||||
Sample contract |
||||
--------------- |
||||
|
||||
``` {.sourceCode .none} |
||||
pragma solidity ^0.4.16; |
||||
|
||||
contract testContract { |
||||
|
||||
uint value; |
||||
function testContract(uint _p) { |
||||
value = _p; |
||||
} |
||||
|
||||
function setP(uint _n) payable { |
||||
value = _n; |
||||
} |
||||
|
||||
function setNP(uint _n) { |
||||
value = _n; |
||||
} |
||||
|
||||
function get () constant returns (uint) { |
||||
return value; |
||||
} |
||||
} |
||||
``` |
||||
|
||||
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 information related to the current contract |
||||
(note that there can be more than one) (see ../compile\_tab). |
||||
|
||||
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 transaction which deploys the instance of `testContract` is created. |
||||
|
||||
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. |
||||
|
||||
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`. |
||||
|
||||
![image](images/remix_quickstart_javascriptvm_creationTransaction.png) |
||||
|
||||
Interacting with an instance |
||||
---------------------------- |
||||
|
||||
This new instance contains 3 actions which corresponds to the 3 |
||||
functions (`setP`, `setPN`, `get`). Clicking on `SetP` or `SetPN` will |
||||
create a new transaction. |
||||
|
||||
Note that `SetP` is `payable` (red action) : it is possible to send |
||||
value (Ether) to the contract. |
||||
|
||||
`SetPN` is not payable (light red action) : it is not possible to send |
||||
value (Ether) to the contract. |
||||
|
||||
Clicking on `get` will not execute a transaction (blue action). It is |
||||
not necessary to do so because `get` does not modify the state (variable |
||||
`value`) of this instance. |
||||
|
||||
As `get` is `constant` you can see the return value just below the |
||||
action. |
||||
|
||||
![image](images/remix_quickstart_javascriptvm_callinginstance.png) |
@ -1,101 +1,4 @@ |
||||
Remix Plugin API |
||||
================ |
||||
Remix Plugin |
||||
============ |
||||
|
||||
This section provides informations about developing plugin for Remix. |
||||
|
||||
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. |
||||
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. |
||||
|
@ -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 +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 |
||||
============ |
||||
|
||||
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 |
||||
------------------ |
@ -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) |