remixethereumcompiler.org Open in urlscan Pro
2606:4700:3032::6815:4157  Public Scan

URL: http://remixethereumcompiler.org/
Submission: On October 20 via api from DE — Scanned from DE

Form analysis 2 forms found in the DOM

<form class="remixui_permissionForm" data-id="pluginManagerSettingsPermissionForm">
  <div class="p-2"></div>
</form>

<form id="local-plugin-form">
  <div class="form-group"><label for="plugin-name">Plugin Name <small>(required)</small></label><input class="form-control" id="plugin-name" data-id="localPluginName" placeholder="Should be camelCase" value=""></div>
  <div class="form-group"><label for="plugin-displayname">Display Name</label><input class="form-control" id="plugin-displayname" data-id="localPluginDisplayName" placeholder="Name in the header" value=""></div>
  <div class="form-group"><label for="plugin-methods">Api (comma separated list of method names)</label><input class="form-control" id="plugin-methods" data-id="localPluginMethods" placeholder="Methods" value=""></div>
  <div class="form-group"><label for="plugin-methods">Plugins it can activate (comma separated list of plugin names)</label><input class="form-control" id="plugin-canactivate" data-id="localPluginCanActivate" placeholder="Plugin names" value="">
  </div>
  <div class="form-group"><label for="plugin-url">Url <small>(required)</small></label><input class="form-control" id="plugin-url" data-id="localPluginUrl" placeholder="ex: https://localhost:8000" value=""></div>
  <h6>Type of connection <small>(required)</small></h6>
  <div class="form-check form-group">
    <div class="radio"><input class="form-check-input" type="radio" name="type" id="iframe" data-id="localPluginRadioButtoniframe" value="iframe" checked=""><label class="form-check-label" for="iframe">Iframe</label></div>
    <div class="radio"><input class="form-check-input" type="radio" name="type" id="ws" data-id="localPluginRadioButtonws" value="ws"><label class="form-check-label" for="ws">Websocket</label></div>
  </div>
  <h6>Location in remix <small>(required)</small></h6>
  <div class="form-check form-group">
    <div class="radio"><input class="form-check-input" type="radio" name="location" id="localPluginRadioButtonsidePanelSidePanel" data-id="localPluginRadioButtonsidePanel" value="sidePanel" checked=""><label class="form-check-label"
        for="sidePanel">Side Panel</label></div>
    <div class="radio"><input class="form-check-input" type="radio" name="location" id="localPluginRadioButtonsidePanelMainPanel" data-id="localPluginRadioButtonmainPanel" value="mainPanel"><label class="form-check-label" for="mainPanel">Main
        Panel</label></div>
    <div class="radio"><input class="form-check-input" type="radio" name="location" id="localPluginRadioButtonsidePanelNone" data-id="localPluginRadioButtonnone" value="none"><label class="form-check-label" for="none">None</label></div>
  </div>
</form>

Text Content

loading compiler...




FILE EXPLORER

Maintained by Remix

Maintained by: Remix Documentation:Description: Remix IDE file explorer
Reset to Default settings

GENERAL SETTINGS

Generate contract metadata. Generate a JSON file in the contract folder. Allows
to specify library addresses the contract depends on. If nothing is specified,
Remix deploys libraries automatically.
Always use Remix VM at load
Word wrap in editor
Enable code completion in editor.
Display gas estimates in editor.
Display errors in editor while typing.
Enable Personal Mode for Remix Provider. Transaction sent over Web3 will use the
web3.personal API. Be sure the endpoint is opened before enabling it. This mode
allows a user to provide a passphrase in the Remix interface without having to
unlock the account. Although this is very convenient, you should completely
trust the backend you are connected to (Geth, Parity, ...). Remix never persists
any passphrase
Enable Matomo Analytics. We do not collect personally identifiable information
(PII). The info is used to improve the site’s UX & UI. See more about Analytics
in Remix IDE & Matomo

GITHUB ACCESS TOKEN

Manage the access token used to publish to Gist and retrieve GitHub contents.

Go to github token page (link below) to create a new token and save it in Remix.
Make sure this token has only 'create gist' permission.

https://github.com/settings/tokens/new?scopes=gist,repo&description=Remix%20IDE%20Token

TOKEN:

USERNAME:

EMAIL:
Remove

ETHERSCAN ACCESS TOKEN

Manage the api key used to interact with Etherscan.

Go to Etherscan api key page (link below) to create a new api key and save it in
Remix.

https://etherscan.io/myapikey

TOKEN:

Remove

SWARM SETTINGS

PRIVATE BEE ADDRESS:

POSTAGE STAMP ID:



IPFS SETTINGS

IPFS HOST:

IPFS PROTOCOL:

IPFS PORT:

IPFS PROJECT ID [ INFURA ]:

IPFS PROJECT SECRET [ INFURA ]:



THEMES

Dark (dark)
Light (light)
Midcentury (light)
Black (dark)
Candy (light)
HackerOwl (dark)
Cerulean (light)
Flatly (light)
Spacelab (light)
Cyborg (dark)
Connect to a Local Plugin
Inactive Modules35
CELOBETA
ACTIVATE

Deploy and Run Transactions with Celo.
CONTRACT DEPLOYERALPHA
ACTIVATE

Deploy a compiled contract to the same address on multiple networks
DEBUGGERVERIFIED BY REMIX
ACTIVATE

Debug transactions
DEFI EXPLORER
ACTIVATE

Explore Defi smart contracts
DEFI TUTORIALSALPHA
ACTIVATE

Learn about Defi
DGITVERIFIED BY REMIX
ACTIVATE

Manage workspaces in a git repository.
DGIT DIFFVERIFIED BY REMIX
ACTIVATE

Diff viewer for the DGIT plugin.
ETHDOC - DOCUMENTATION GENERATOR
ACTIVATE

Generate Solidity documentation (as md) using Natspec
ETHDOC VIEWER
ACTIVATE

Visualize Solidity documentation from EthDoc Plugin
ETHERSCAN - CONTRACT VERIFICATIONVERIFIED BY REMIX
ACTIVATE

Verify Solidity contract code using Etherscan API
FLATTENERVERIFIED BY REMIX
ACTIVATE

Flattens compiled smart contracts
GAS PROFILERALPHA
ACTIVATE

Profile gas costs
GIT
ACTIVATE

Using Remixd daemon, allow to access git API
KLAYTN
ACTIVATE

Deploy and Run Transactions with Klaytn.
LEARNETHVERIFIED BY REMIXBETA
ACTIVATE

Learn Ethereum with Remix!
LEXONALPHA
ACTIVATE

Compile Lexon contracts
MOONBEAM PLUGIN
ACTIVATE

Deploy and interact with Moonbeam.
MYTHX SECURITY VERIFICATION
ACTIVATE

Perform Static and Dynamic Security Analysis using the MythX Cloud Service
NAHMII COMPILER
ACTIVATE

Compiler for Nahmii 2.0.
ONE CLICK DAPP
ACTIVATE

A free tool to generate smart contract interfaces.
PROVABLE - ORACLE SERVICE
ACTIVATE

request real-world data for your contracts
QUORUM NETWORKBETA
ACTIVATE

Deploy and interact with private contracts on a Quorum network.
REMIXDVERIFIED BY REMIX
ACTIVATE

Using Remixd daemon, allow to access file system
SOLHINT LINTER
ACTIVATE

Linter for Solidity
SOLIDITY 2 UML
ACTIVATE

Unified Modeling Language (UML) class diagram generator for Solidity contracts
SOLIDITY STATIC ANALYSISVERIFIED BY REMIX
ACTIVATE

Checks the contract code for security vulnerabilities and bad practices.
SOLIDITY UNIT TESTINGVERIFIED BY REMIX
ACTIVATE

Write and run unit tests for your contracts in Solidity
SOURCIFY
ACTIVATE

Solidity contract and metadata verification service
STARKNETALPHA
ACTIVATE

Compile and deploy contracts with Cairo, a native smart contract language for
StarkNet.
TENDERLY
ACTIVATE

Remix & Tenderly Project Integration. Verify Contracts. Import To Remix From
your Tenderly project.
UMA PLAYGROUNDALPHA
ACTIVATE

Interactive playground for the UMA protocol
UMA TUTORIALSALPHA
ACTIVATE

Learn about the UMA protocol
VYPERVERIFIED BY REMIX
ACTIVATE

Compile vyper contracts
WALLET CONNECTVERIFIED BY REMIX
ACTIVATE

Use an external wallet for transacting
ZOKRATESBETA
ACTIVATE

ZoKrates toolbox for zkSNARKs on Ethereum

PLUGIN MANAGER PERMISSIONS

Close

NO PERMISSION REQUESTED YET.


OKCancel
Permissions

LOCAL PLUGIN

Close
Plugin Name (required)
Display Name
Api (comma separated list of method names)
Plugins it can activate (comma separated list of plugin names)
Url (required)

TYPE OF CONNECTION (REQUIRED)

Iframe
Websocket

LOCATION IN REMIX (REQUIRED)

Side Panel
Main Panel
None
OKCancel
Files to include
Files to exclude


WorkspacesCreateRenameDeleteDownload WorkspacesRestore Workspaces BackupClone
Git Repository
default_workspace

 * Create New FileCreate New FolderPublish all the current workspace files (only
   root) to a github gistLoad a local file into current workspace
    * contracts
    * scripts
    * tests
    * README.txt





Close





Close

Close
CompilerAdd a custom compiler with URLSee compiler licenselatest local version -
soljson-v0.8.7+commit.e28d00a7.js0.8.17+commit.8df45f5f0.8.16+commit.07a7930e0.8.15+commit.e14f27140.8.14+commit.80d49f370.8.13+commit.abaa5c0e0.8.12+commit.f00d73080.8.11+commit.d7f039430.8.10+commit.fc4108300.8.9+commit.e5eed63a0.8.8+commit.dddeac2f0.8.7+commit.e28d00a70.8.6+commit.11564f7e0.8.5+commit.a4f2e5910.8.4+commit.c7e474f20.8.3+commit.8d00100c0.8.2+commit.661d11030.8.1+commit.df193b150.8.0+commit.c7dfd78e0.7.6+commit.7338295f0.7.5+commit.eb77ed080.7.4+commit.3f05b7700.7.3+commit.9bfce1f60.7.2+commit.51b20bc00.7.1+commit.f4a555be0.7.0+commit.9e61f92b0.6.12+commit.27d517650.6.11+commit.5ef660b10.6.10+commit.00c0fcaf0.6.9+commit.3e3065ac0.6.8+commit.0bbfe4530.6.7+commit.b8d736ae0.6.6+commit.6c089d020.6.5+commit.f956cc890.6.4+commit.1dca32f30.6.3+commit.8dda95210.6.2+commit.bacdbe570.6.1+commit.e6f7d5a40.6.0+commit.26b700770.5.17+commit.d19bba130.5.16+commit.9c3226ce0.5.15+commit.6a57276f0.5.14+commit.01f1aaa40.5.13+commit.5b0b510c0.5.12+commit.7709ece90.5.11+commit.22be85920.5.11+commit.c082d0b40.5.10+commit.5a6ea5b10.5.9+commit.c68bc34e0.5.9+commit.e560f70d0.5.8+commit.23d335f20.5.7+commit.6da8b0190.5.6+commit.b259423e0.5.5+commit.47a71e8f0.5.4+commit.9549d8ff0.5.3+commit.10d17f240.5.2+commit.1df8f40c0.5.1+commit.c8a2cb620.5.0+commit.1d4f565a0.4.26+commit.4563c3fc0.4.25+commit.59dbf8f10.4.24+commit.e67f01470.4.23+commit.124ca40d0.4.22+commit.4cb486ee0.4.21+commit.dfe3193c0.4.20+commit.3155dd800.4.19+commit.c4cbbb050.4.18+commit.9cf6e9100.4.17+commit.bdeb9e520.4.16+commit.d7661dd90.4.15+commit.8b45bddb0.4.15+commit.bbb8e64f0.4.14+commit.c2215d460.4.13+commit.0fb4cb1a0.4.12+commit.194ff0330.4.11+commit.68ef58100.4.10+commit.f0d539ae0.4.9+commit.364da4250.4.8+commit.60cc16680.4.7+commit.822622cf0.4.6+commit.2dabbdf00.4.5+commit.b318366e0.4.4+commit.4633f3de0.4.3+commit.2353da710.4.2+commit.af6afb040.4.1+commit.4fc6fc2c0.4.0+commit.acd334c90.3.6+commit.3fc68da50.3.5+commit.5f97274a0.3.4+commit.7dab89020.3.3+commit.4dc1cb140.3.2+commit.81ae2a780.3.1+commit.c492d9be0.3.0+commit.11d673690.2.2+commit.ef92f5660.2.1+commit.91a6b35f0.2.0+commit.4dc2445e0.1.7+commit.b4e666cc0.1.6+commit.d41f8b7c0.1.5+commit.23865e390.1.4+commit.5f6c3cdf0.1.3+commit.028f561d0.1.2+commit.d0d36e30.1.1+commit.6ff4cd6
Include nightly builds
Auto compile
Hide warnings
Advanced Configurations

Compiler configuration
LanguageSolidityYul
EVM
VersiondefaultberlinlondonistanbulpetersburgconstantinoplebyzantiumspuriousDragontangerineWhistlehomestead
Enable optimization
Use configuration file
compiler_config.jsonChange
compiler is loading, please wait a few moments.Compile <no file selected>
Compile and Run script




Close

Close



Close


Environment
Remix VM (London)

Click for docs about Environment
VM
Account
0x5B3...eddC4 (100 ether)0xAb8...35cb2 (100 ether)0x4B2...C02db (100
ether)0x787...cabaB (100 ether)0x617...5E7f2 (100 ether)0x17F...8c372 (100
ether)0x5c6...21678 (100 ether)0x03C...D1Ff7 (100 ether)0x1aE...E454C (100
ether)0x0A0...C70DC (100 ether)0xCA3...a733c (100 ether)0x147...C160C (100
ether)0x4B0...4D2dB (100 ether)0x583...40225 (100 ether)0xdD8...92148 (100
ether)

Sign a message using this account
Gas limit
Value
WeiGweiFinneyEther
Contract

No compiled contracts
or
At Address
Transactions recorded
0

Run transactions using the latest compilation result
SaveRun
Deployed ContractsCurrently you have no contract instances to interact with.



Close





Close

Close



Close

OK


Zoom outZoom in
 * Home


Scroll to see all tabs
1





Enter to Rename, Shift+Enter to Preview


IMPORT FROM

Close

Import



Close

Close
Remix IDE


FEATURED PLUGINS

Solidity
StarkNetL2
Solhint linter
LearnEth
Sourcify
More

FILE

New File

Open Files

Connect to Localhost

LOAD FROM:

GistGitHubIpfshttps

RESOURCES

Documentation

Gitter channel

Featuring website

TwitterMedium blogs


REMIX IDE V0.27.0 RELEASE

Author: Rob Stupay

OCT 7

I know a chef who spends his Sunday evenings sharpening his knives. When he
begins, he’s in a bad mood. But as he finishes the task, his mood lifts as he
remembers his excitement for the coming week’s slicing, dicing, mincing—and
let’s not forget—julienne-ing and chiffonde-ing.

In this release, we sharpened up some features of the previous release and have
plated some new features. I don’t think the focus at the “Remix whetsone” has
soured our collective mood. And if it has, so be it. We’ll just hit the new
Play button.


THE BIG NEWS

 * Syncing with Compilations from Frameworks: Hardhat, Foundry, Truffle
 * GitHub Action for Solidity Unit Testing
 * New Templates
 * Initialize a Workspace with GIT
 * Play Button
 * Autocomplete on Import Statements
 * Improvements to Editor Autocomplete/Hover/References
 * Error Reporting on Imported Contracts
 * Code Formatting


A QUICK NEWS FLASH ABOUT THE PREVIOUS RELEASE

To get the autocomplete to work, you will need to turn on a few settings in the
Settings Panel.

And now, on to the news of this release…


SYNCING COMPILATION WITH HARDHAT, TRUFFLE AND FOUNDRY

CODE & COMPILE IN ANOTHER FRAMEWORK AND DEPLOY FROM REMIX

Now when you compile a contract in Truffle, Hardhat or Foundry, and your project
folder is connected to Remix IDE using Remixd, those compiled files can be
synchronized into, and deployed from, Remix.

To sync the compilation results in Remix, go to the Deploy & Run module and in
the Contract section, click the refresh icon.

If your last compilation was from Hardhat, you’ll see:

If the last compilation was from Remix, you’ll see:

All this syncing is in the Deploy & Run plugin, because from here, you can
Deploy to your heart’s content!

Similarly it can work in the other direction: develop your files in Remix, and
deploy from the framework of your choice. Or, it can be used in both directions:
develop both in Remix and in another framework. The compiled files can be
brought into Remix, or they can be brought into the Framework of your choice.

Slice it and dice it as you choose! It will all get cleaned up in the sync.

PERMISSIONS TO UPDATE A FILE EDITED OUTSIDE OF REMIX

This item has been part of Remix, but I thought I’d demo this feature again. If
you are editing a file in a code editor outside Remix (like VSCode), and the
file’s folder is shared with Remixd, then when you switch back to Remix and go
to the File Explorer, you will see a modal like this one:


GITHUB ACTION FOR SOLIDITY UNIT TESTING

When coding a project, shifting the Solidity Unit Tests (SUT) to the GitHub side
of things can optimize your workflow. Every time a push to the repo is made, the
SUTs will run. Having Solidity Unit Tests run automatically on GitHub is one
less thing to think about.

name: solidity-unit-testing-action
on: [push]

jobs:
  run_sample_test_job:
    runs-on: ubuntu-latest
    name: A job to run sample solidity tests
    steps:
      - name: Checkout
         uses: actions/checkout@v2
      - name: Run SUT Action
        uses: EthereumRemix/sol-test@v1
        with:
            test-path: 'sample/tests'
            compiler-version: '0.8.15'

See our article about adding the Solidity Unit Testing Github Action to your
workflow.


EASY NEW WAY TO CREATE A WORKSPACE

For you all Remixers with bad aim at clicking icons, we have an easy new way to
create a Workspace.

Of course, you can still click the + icon above to get a new workspace.

Also note: connect to localhost has been moved up.


INITIALIZE A WORKSPACE WITH GIT

When creating a new Workspace, you’ll have the option to initialize that
Workspace as a Git repo.


NEW OPTIONS FOR OPENZEPPELIN TEMPLATES

We have added options to the OpenZeppelin templates. To see these additions,
create a new Workspace and then choose one of the OpenZeppelin templates.

Now there are options to add additional features to the templates of
OpenZeppelin tokens.

Checking a feature’s box will add an import statement to the base contract.


PLAY BUTTON

At the top of the main panel, next to the magnifying glass icons is a Play
button. This Play button operates on the active tab in the Editor. If it’s a
Solidity file, the Play button will compile it. If it’s a .js or .ts file, the
Play button will run the script.


EDITOR UPDATES

AUTOCOMPLETE ON IMPORT STATEMENTS

In the previous release, 0.26.0, we brought autocomplete to the Editor. And in
this release, we’ve brought autocomplete to import statements. When typing a
line like:

The autocomplete will offer you the option to bring in OpenZeppelin contracts,
Uniswap contracts, and the paths to all the files in the current Workspace.

So then when choosing @openzeppelin, you’ll get this:

And the same with Uniswap:

So go forth and import!


ERROR REPORTING ON IMPORTED CONTRACTS

Now when you import a contract that contains errors, the telltale squiggly red
line will underline them, and its filename will turn red in the top tab as well
as in the File Explorer.


IMPROVEMENTS TO EDITOR IMPROVEMENTS (RESHARPENING THE AUTOCOMPLETE BLADE)

In the last release, there were reports that when users were working with
especially large files, autocomplete would cause the Editor to be a bit jumpy.
In this release, we have updated Autocomplete so that it offers a maximum of 100
choices. This should allow plenty of choices, and should also prevent the
browser from protesting.


CODE FORMATTING

An orderly-looking page is easier to read (and debug). Now you can clean up your
code’s formatting by right-clicking in the Editor or by hitting
Shift + Option + F .


OUR SUNDAY NIGHT SHARPENING

We’ve been working on some vexing behind-the-scenes PRs, like ones to speed up
our E2E tests—just like a chef sharpening knives, it needs to be done regularly.
And with Remix sharp, your development process will be as smooth as a
lovely velouté.


THANK YOU, FABULOUS USERS

Please report any dicey problems you find in Remix. Also, please send us your
suggestions about any changes you’d like to see in Remix, or any functionality
you think would be useful to add.

For future releases, we are looking for more Beta Testers. If you are interested
in helping this effort please fill out this questionnaire.

We strive to make the Remix IDE more convenient and easy to use. You can reach
us on Twitter, Gitter, or via email (remix@ethereum.org) or Discord.
TIA!

--------------------------------------------------------------------------------

Remix IDE v0.27.0 Release was originally published in Remix Project on Medium,
where people are continuing the conversation by highlighting and responding to
this story.

READ MORE

--------------------------------------------------------------------------------


SOLIDITY UNIT TESTS VIA A GITHUB ACTION

Author: Rob Stupay

SEP 27

This GitHub action can run Solidity Unit Tests as part of your continuous
integration and deployment process.

When coding a project, shifting the Solidity Unit Tests (SUT) to the GitHub side
of things can optimize your workflow. Every time a push to the repo is made, the
SUTs will run. Having Solidity Unit Tests run automatically on GitHub is one
less thing to think about.


ADDING REMIX’S SOLIDITY UNIT TESTS ACTION TO YOUR GITHUB WORKFLOW IS SIMPLE!

Check the GitHub Actions page for the Solidity Unit Tests Action.

 1. In your repo make a directory called .github/workflows
 2. In that directory, make a .yml file like the one below.
 3. In the example below, the action will look through the sample/tests
    directory, and will check for files named with a _test.sol suffix (e.g.
    filename_test.sol) and will run those tests.
 4. Change the name of the sample/tests directory to make it fit with your
    repo’s structure.
 5. If you don’t want to put a folder path, give the full path to a test file.
 6. Set the compiler version to be the same as the one in the contract files.

name: solidity-unit-testing-action
on: [push]

jobs:
  run_sample_test_job:
    runs-on: ubuntu-latest
    name: A job to run sample solidity tests
    steps:
      - name: Checkout
         uses: actions/checkout@v2
      - name: Run SUT Action
        uses: EthereumRemix/sol-test@v1
        with:
            test-path: 'sample/tests'
            compiler-version: '0.8.15'

LEARN TO WRITE SOLIDITY UNIT TESTS

The one prerequisite to using this action is knowing how to write Solidity unit
tests. Check our testing docs here. You can play with these tests right in
Remix, either by activating the Solidity Unit Tests plugin in the Remix Plugin
Manager, or just by clicking here. In addition, you can try out these tests
locally using our NPM package.

As you can see, its easy to set up the GitHub Action, so try it out!

Please let us know what you think. Tweet us: @EthereumRemix or join us on Gitter
or Discord.

--------------------------------------------------------------------------------

Solidity Unit Tests via a GitHub Action was originally published in Remix
Project on Medium, where people are continuing the conversation by highlighting
and responding to this story.

READ MORE

--------------------------------------------------------------------------------


REMIX IDE V0.26.0 RELEASE

Author: Rob Stupay

SEP 1

As the Northern Hemisphere’s summer wanes, Remix releases v0.26.0. It’s our drop
of late summer that should fall into your lap (or laptop) like a ripe peach.

Note: It is advised, while reading this article, to cue up The Wedge by Dick Dale (King of the Surf Guitar) to help you find the summer groove. And for serious Remixers, don't forget to don your Foster Grants.


THE BIG NEWS

 * Major updates come to the Editor
 * Drag and Drop in File Explorer
 * Update to Deploy & Run’s compiled contracts list
 * Vyper Plugin updates


THE FULL FEATURED EDITOR FEATURES

THE EDITOR AS (WE HOPE) YOU’VE ALWAYS WANTED IT

This article will cover the highlights of these new features. For more details,
check this article, focused solely on updates to the Editor.

These new Editor features are relevant for Solidity files:

Autocomplete
As your fingers surf across the computer’s keyboard, how often have you
mistyped? Autocomplete should minimize your typos. This feature should also help
beginners — by suggesting code as well as people who have trouble spelling in
English (which as a native English speaker, includes me).

Gas Estimates
Gas estimates are now displayed on the same line where a function is declared.

Go to Definition and References
Use the shortcut or right-click to get the context menu to go to definitions or
references.

Highlighted References
References are now highlighted in the Editor.

Hovering
When you hover over a term with a definition, the definition will pop up.
Hovering over code that has triggered an error (underlined with a red squiggly
line) will show the error message.

Files with Errors turn Red

When a file has an error in it, its name will turn red, both in the File
Explorer and on its tab at the top of the Editor.

Control These Features in the Settings Panel


DRAG AND DROP IN FILE EXPLORER

Feeling the need to do some end-of-summer cleaning? Now you can organize your
Workspaces by dragging files or folders into different folders!

Thanks so much to iamsethsamuel for this addition!


VYPER PLUGIN UPDATES

We’ve corralled the Vyper Plugin into our codebase, and added a button to clone
the vyper-lang repo into Remix. So you can now play with loads of example files.
Just click the button and then go to the File Explorer to see the cloned repo.

Remember when using Vyper, only use the Remote Compiler for testing. You should
use a local compiler for production builds.

Also note that only Vyper versions > 0.2.16 are supported.


DEPLOY & RUN UPDATES

BALANCE

Have you ever needed to know the balance of a contract? As Dick Dale would have
said (if he had taken up Ethereum development) “Oh yah!”
The balance of a deployed contract now is shown in the contracts’ instance.

CONTRACT PULLDOWN

Have you ever compiled a contract and then deployed the wrong one by accident
because you didn’t check the Contract Pulldown box?

Now this pulldown box will select a contract by default from the compiled file.
So, in most cases this should be selecting the file you want.


DEBUGGER WIDTH

Check the Debugger now — it’s wider! And wider means you can now see multiple
panels at once.


REMIX URL PARAMETERS

For quite a while you’ve been able to use URL parameters with Remix so that you
can call a plugin and pass commands to that plugin. See docs for more.

Now you can call multiple plugins and pass each of them commands.

Like this:

https://remix.ethereum.org/?#activate=solidityUnitTesting,solidity,LearnEth&calls=LearnEth//startTutorial//ethereum/remix-workshops//master//proxycontract///fileManager//open//contracts/3_Ballot.sol

This command will activate a list of plugins and, with the calls param, will
then call the LearnEth plugin, pass it some commands, and then will call another
plugin and pass that one commands, using the /// separator.

Thanks much to JeremyTheintz for contributing this PR!


THEMES

We’ve also released a cool new theme—“HackerOwl”—thanks to koolamusic. To check
this theme out, go to the Settings panel and you’ll now see it in the
Themes section.


FIXING, FIXING

With every problem comes a gift in hand. -Dick Dale

Some of this release is about fixing issues, such as…

 * The base fee for Mainnet transactions now shows the accurate amount.
 * listen on all transactions is now working also.

 * Double scroll bars that would occasionally appear are now excised.
 * The scopes have been added to the GitHub Token Maker, thanks to our
   contributor NeilShah2026
 * The resolver for remix-tests CLI, which shows Hardhat console logs while
   using CLI usage of remix-tests, has been addressed.

Click here to see the release’s complete change log.


THANK YOU, FABULOUS USERS

(whether you’ve been to the beach or not)

Please report any problems you find in Remix. Also, please send us your
suggestions about any changes you’d like to see in Remix, or any functionality
you think would be useful to add.

For future releases, we are looking for more Beta Testers. If you are interested
in helping this effort please fill out this questionnaire.

We strive to make the Remix IDE more convenient and easy to use. You can reach
us on Twitter, Gitter, or via email (remix@ethereum.org) or Discord.
TIA!

--------------------------------------------------------------------------------

Remix IDE v0.26.0 Release was originally published in Remix Project on Medium,
where people are continuing the conversation by highlighting and responding to
this story.

READ MORE

--------------------------------------------------------------------------------


A MAJOR UPDATE COMES TO THE REMIX EDITOR

Author: Filip Mertens

AUG 31

 * Autocompletes Solidity files
 * Displays inline where errors are occurring
 * Includes a hover feature
 * Lets you jump to references and definitions
 * Shows Gas Estimates

AUTOCOMPLETE SOLIDITY FILES

As of Remix v0.26.0, autocompleting Solidity code happens when you type in the
Editor. The Compiler will run in the background, and will process any imports
you have. You will see these imports appear in the .deps directory in the File
Explorer.

Tip:
If you start with a Solidity file that has errors, the Compiler might not be
able to compile it. In that case, autocomplete features will not fully work
until the first time a file is successfully compiled. After that, autocomplete
will work even if there are errors, but only for the elements the Compiler
already knows the meaning of. But if you add, for example, a new function in a
file that has errors, autocomplete will not be able to find that function
because it can’t compile the file. We will continue to improve this to provide
more flexibility.

ERRORS AND WARNINGS

You can tell the Compiler is successful if no errors or warnings are displayed
in the Editor. Errors are displayed using squiggly lines. A red line indicates
an error, a yellow line is a warning.

Hovering over the squiggle line shows you the message from the Compiler.

Tabs and the File Explorer will also show you a file has errors or warnings.

This is especially useful if you have errors in your imports. Your main file
might not compile, but now you would see there is a problem straight away.

Hovering over the number, which indicates the amount of errors/warnings, will
display the information from the Compiler.

GAS ESTIMATES

Gas estimates are now displayed in the Editor. This only works when the
compilation is successful.

Constructor gas estimates are also displayed, and consist of two components:
creation cost and code deposit cost.

GO TO DEFINITION

By right-clicking, you can go to a definition. You can also use the shortcut
displayed.

You can also right-click on the filename of an import statement and jump to
that file.

You can also ‘peek’ the definition inline in the editor. You can then jump to a
definition by double clicking on the line on the right hand side.

GO TO REFERENCES

By right-clicking, you can display all the references. You can also use the
shortcut displayed.

You can jump to a reference by double clicking on the line on the right
hand side.

HIGHLIGHTING

References are now highlighted in the Editor.

HOVERING

Hovering over any element in the code will provide you with information on the
definition, the type, and the location.

This will only work when the file has been compiled properly at some point. If
it has not, hovering will just show simple definitions:

SETTINGS

All of these features can be turned off in Remix Settings.

Now go get coding!

Your fingers can be all toes — because autocomplete will minimize those typos!
Jump to the ref! Hover for the def! See that squiggle? Then you gotta rework
your groove! Now dig your gas estimation!
Ready… set… go → deploy that sucker.

Please give us some feedback about these Editor enhancements. We will be
continuing to improve these features, so your comments will really help us.
Comment below in this article or in Twitter, Gitter, or via email
(remix@ethereum.org) or Discord.

Big shoutout to Juan Blanco of the Solidity extension for VSCode, we were happy
to study his approach and used solidity code snippets in the autocomplete code.
Find his extension here! And to the guys who keep the this solidity parser going
for inspiration sharing the code!

--------------------------------------------------------------------------------

A Major Update Comes to the Remix Editor was originally published in Remix
Project on Medium, where people are continuing the conversation by highlighting
and responding to this story.

READ MORE

--------------------------------------------------------------------------------


REMIX V0.25.0 RELEASED

Author: Rob Stupay

JUL 19


BIG NEWS

 * New version of Remixd (with a command that installs Slither)
   Update it now!

npm install -g @remix-project/remixd

 * “Clone-A-Git” repo in the File Explorer
 * “Browse-N-Grab” files from GitHub or Etherscan
 * “Choose-A-Chain” for easy L2 deployment
 * New labels in Deploy & Run’s environment select box (You’ll never need to
   wonder which one is for MetaMask)
 * UUPS Proxy contract functionality


REMIXD & SLITHER

There is a new version of Remixd 0.6.4. Please update it now.

In this release, for all you Slither users, we have simplified Slither running
with Remixd. Now you can install the Slither package locally in the working
directory of the terminal by running: remixd -i slither.

As a prerequisite, you need to have Python3.6 + installed.

Now install Slither and get slithering!!

And, did you know that you can run the command remixd without any flags?! This
was a feature implemented in a previous Remixd update. The shared directory will
be the terminal’s current working directory, and the only allowed connections
are to: remix.ethereum.org, remix-alpha.ethereum.org, or
remix-beta.ethereum.org.


CLONE A REPO IN THE FILE EXPLORER

Did you know that for quite some time, you could clone Git repos in Remix — by
using DGit plugin. Check it out here.

Now with this Remix IDE release, you can clone a public repo right from the File
Explorer. To clone a private repo, first you need to input your GitHub access
token in the Settings panel.

To clone, click on the icon on the Workspaces line:

After it’s cloned, the rest of the Git operations are done in the DGit plugin.
(BTW DGit stands for Decentralized Git).

Workspaces that have an associated Git Repo, will have the Git logo next
to them.


MORE INFO ABOUT ALL PLUGINS

For ages now, plugins in Remix have had their associated documentation linked
from the book icon next to their title. In this release, we’ve updated all the
top side panel plugins with a green check mark for plugins that Remix maintains
and a caret, that when clicked, reveals…

 * A link to the docs (still the book icon)
 * Who maintains the plugin’s repo
 * A description of the plugin’s functionality
 * A link to the proper place to make an issue


FOUNDRY REMAPPINGS

Are you going between Foundry and Remix? Check this out…

When you connect Remixd to a folder containing a Foundry Project, Remix will add
the default remappings property in the compiler_config.json file.

You can add the other remappings manually as per the requirement.


DEPLOY & RUN: ENVIRONMENT EDITS AND ADDITIONS

RENAMED LABELS

In this release, we’ve edited the names of some of the choices in the
Environment select box:

 * Javascript VM is now called Remix VM.
 * Injected Web3 is now called Injected Provider [Name of the provider] : so
   when it’s MetaMask, it will say Injected Provider — Metamask.
 * Web3 Provider is now called External Http Provider.

When deploying to a local Hardhat, Ganache, or Foundry chain, just pick the
appropriate one here. In this release we’ve added the Foundry Provider.

Of course, the old way will still work, where you’d use External Http Provider
and then input the node’s External HTTP Provider Endpoint.

DEPLOYING TO AN L2, LINKS TO BRIDGES

We’ve added the choice of Optimism Provider and Arbitrum One Provider. When you
choose one of these L2 chains, the chain’s settings will be automatically sent
to MetaMask. Then MetaMask will ask if you approve switching to this chain.

DEPLOYING TO THE “THISCHAIN” OR “THATCHAIN” OR “THEOTHER” CHAIN

Before you can deploy to some chain or other, you need to know its configuration
specs to put into MetaMask. With this release, you don’t need to go searching
for this info.

By clicking the plug icon next to Environment, you’ll be taken to chainlist.org
where you can automatically update your wallet with the chain’s specs.

L2 BRIDGES

Need a bridge to exchange Mainnet ETH for the selected L2 chain’s currency?
Click on the plug icon next to the L2 chain and you’ll be taken to Optimism’s
bridge page or Arbitrum’s bridge page (depending on which is the selected
environment.


UUPS PROXY CONTRACTS IN REMIX

A UUPS proxy contract is the implementation side of an ERC1967Proxy.

With this release, once you have deployed a UUPS implementation contract, Remix
will deploy a ERC1967 with your implementation contract’s address.

To try this out, you will need to get a proxy contract.

 1. Go to wizard.openzeppelin.com and select a contract.
 2. In the Upgradeability section, check the UUPS option.
 3. Copy and paste the file into Remix.

When a UUPS contract is selected in Deploy & Run’s Contract select box, you’ll
see some checkboxes below the Deploy button:

When deploying, choose Deploy with Proxy. This will create two transactions: one
for the implementation (your contract) and the other for the ERC1967 proxy
contract. You will get two modals to check through:

and then:

If you are deploying to the Remix VM, these modals will appear one after the
other. If you are connected to a public testnet, then the second modal will
appear after the first transaction has gone through.

After the ERC1967 proxy contract is deployed, in the Deployed Contracts section,
you’ll see two deployed instances.

To interact with your implementation contract DO NOT use the instance of your
contract. Instead, you should use the ERC1967 Proxy. The proxy will have all the
functions of your implementation.

To upgrade, check the Upgrade with Proxy box and dial down the caret to see
the options:

You’ll either need to use the last deployed ERC1967 contract, or input the
address of the ERC1967 contract that you want to use.


TRANSACTION RECORDER UPDATES

The Transaction Recorder is an underused gem in Remix. With it, you can record a
series of transactions and replay them in the same, or in a different,
environment.

In this release, you can now use the last compiled bytecode in the Recorder. In
this use case, Transaction Recorder is allowing you to quickly set the
contract’s state.


BROWSE-N-GRAB

ETHERSCAN

Are you checking out some verified contracts in Etherscan and want to open them
up in Remix? Try this out! Find the URL of a verified contract like this one:

https://etherscan.io/address/0x7ba6f990188f0a28594ca2441c0bde310c2bdd70

Then delete the “etherscan.io” part and type in “remix.ethereum.org” in its
place, like this:

https://remix.ethereum.org/#address=0x7ba6f990188f0a28594ca2441c0bde310c2bdd70

Remix will fetch the contract and open it up in the File Explorer in a Workspace
named etherscan-code-sample.

GITHUB

We’ve got a similar trick to open GitHub files in Remix. Find a .sol file in
GitHub like this one:

https://github.com/ethereum/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol

Then delete the “github” part and type in “remix.ethereum.org” in its place,
like this:

https://remix.ethereum.org/ethereum/remix-project/blob/master/apps/remix-ide/contracts/app/solidity/mode.sol

Remix will fetch the Solidity file and open it up in the File Explorer in a
Workspace named code-sample.


THANK YOU, WONDEROUS USERS

Please report any problems you find in Remix. Also please send us your
suggestions about any changes you’d like to see in Remix, or any functionality
you think would be useful to add.

For future releases, we are looking for more Beta Testers. If you are interested
in helping this effort please fill out this questionnaire.

We strive to make the Remix IDE more convenient and easy to use. You can reach
us on Twitter, Gitter, or via email (remix@ethereum.org) or Discord.
TIA!

--------------------------------------------------------------------------------

Remix v0.25.0 Released was originally published in Remix Project on Medium,
where people are continuing the conversation by highlighting and responding to
this story.

READ MORE

--------------------------------------------------------------------------------


REMIX 0.24.0 RELEASE

Author: Yann Levreau

JUN 6

Welcome again fellow Remixers, it’s time for a little update ;)

In this release we have added project templates, updates to Remixd, updates to
the Solidity Compilers and a few other goodies, so read on…

But first, for all you Remixd users, please update to the latest version: v0.6.2

npm install -g @remix-project/remixd


PROJECT TEMPLATE

Having Workspaces is nice, but having Workspaces that give you the choice of
templates is even better.

Now when you create a Workspace, you’ll be prompted to choose a template.


REMIXD IS NOW EASIER TO RUN

Tired of having to run remixd with a lot of parameters? We’ve simplified the
command with some default parameters. Now, when you run the command remixd
without any flags, the current working directory will be shared with Remix and
it will only allow one of the public Remix URLs.

 * update remixd to the latest: npm install -g @remix-project/remixd
 * in a terminal, go to your working directory, and just run remixd

run remixd


SOLIDITY COMPILER UI CHANGES

We’ve cleaned up the Solidity Compiler’s interface. Now when you come to the
Compiler you’ll see this:

To see the more advanced configuration (including optimization) click on
Advanced Configurations and the section will open up:


SOLIDITY COMPILER CONFIG

As you can see in the above image, you can now use a config file for setting
compiler options instead of using the UI. Please check it out! ;). For more info
on the config file, see the docs.

use compiler configuration


PUBLISH TO IPFS LOCAL NODE AND API ENDPOINT

In the Solidity Compiler, there is a button to publish to IPFS.

WHY PUBLISH YOUR SOURCE CODE TO IPFS?

Once you have published to IPFS and have deployed your code to a public network,
Sourcify—a contract verification service—will verify your code without you
needing to do any more.

CHANGES TO IPFS CONFIGURATION IN REMIX

Before this release, when publishing to IPFS, users were actually using Remix’s
public endpoint. With this release, users will need to specify which IPFS
gateway to use. So when you click the Publish on IPFS button, you’ll see
this modal:

As indicated in the image above, there are 4 options:

 * public INFURA node: This is the default option and does not require a
   subscription to Infura. But, this is the least secure of the options because
   you don’t have control over what is kept pinned. And, if the data is not
   accessible, then Sourcify cannot verify it. To use this option, just
   click OK.
 * your own INFURA IPFS node: with this option, you’ll need to register with
   Infura. You’ll also need to input your Infura IPFS keys into the Remix
   settings panel (see the image below).
 * an external IPFS node which doesn’t require any authentication.
 * your own local IPFS node: A local node usually runs on http://localhost:5001

These configuration settings are in the Settings panel.


TYPESCRIPT INTEGRATION

Monaco Editor now provides auto completion for TypeScript files. Plus, the
Editor will now resolve ethers.js and web3 interfaces.


NEXT NEXT ;)

We have a few nice updates coming in soon, like integration with proxy contracts
and improvement of the Editor.

The next release is coming very, very soon ;) so please reach out to us here if
you would like to be part of the next Beta Testing session. Looking forward to
connecting with you.

Please report any problems you find in Remix. Also, please send us your
suggestions about any changes you’d like to see in Remix, or any functionality
you think would be useful to add.

For future releases, we are looking for more Beta Testers.

We constantly strive to make the Remix IDE more convenient and easy to use. You
can reach us on Twitter, Gitter, or via email (remix@ethereum.org) or Discord.
TIA!

--------------------------------------------------------------------------------

Remix 0.24.0 Release was originally published in Remix Project on Medium, where
people are continuing the conversation by highlighting and responding to this
story.

READ MORE

--------------------------------------------------------------------------------


REMIX 0.23.0 RELEASE

Author: Yann Levreau

MAY 19

Welcome fellow Remixer ;) It’s time for a little update.

Shortly before Devconnect (in mid April), we shipped a new release, v0.23.0
which comes with a few great updates:


STATIC ANALYSIS WITH SLITHER

Slither is a static analysis tool run with the CLI (command line interface) that
can be run in Remix through RemixD. It analyzes your code and provides a
full report.

For the moment, you’ll need to install Slither and its dependencies. Soon
however, we’ll be packaging Slither with RemixD.

Here’s what you need to do to run Slither:

 * Install Slither
 * Install RemixD npm install -g @remix-project/remixd
 * Go to your working directory and run remixd -s ./
 * Go to https://remix.ethereum.org and click on the workspace dropdown list and
   select localhost
 * Compile your contract
 * Go to the Plugin Manager and activate Solidity Static Analysis:

 * From there you can select Enable Slither Analysisand click Run. After some
   time the report will be available in the UI and as a json file in the
   root folder.


EXECUTE A SCRIPT UPON COMPILATION

When it comes to developing smart contracts, the drafting phase can be
cumbersome.

There is a lot of back and forth between writing code, compiling, deploying to
the VM or Testnet, testing etc. And, sometimes you need to deploy several
contracts, and create several transactions before the actual testing (manual
testing or automatic testing).

This is where this feature comes in. You can run a script as soon as the
compilation finishes. The script can deploy the contract, send transactions, and
put the context in the state you want.

You will find more info in this short video:

https://medium.com/media/abdab4f61fe582c7e80e042705ac185e/href

To check out an example .sol file and script combination, make a new Workspace
(we’ve updated the default files), and look at 1_Storage.sol as well
as ./scripts/deploy_with_ethers.ts

In short, to setup a script that works with Compile and Run, you’ll need to:

 * set the NatSpec tag @custom:dev-run-script ./scripts/deploy_with_ethers.ts on
   the contract you want to interact with.
 * from the Solidity Compiler, hit Compile And Run or Ctrl Shift S .

That’s it. Welcome to the drafting-without-borders world!


RUN TYPESCRIPT

Here it comes!

Our Editor and Script Runner now support TypeScript, which mean that you can
write TypeScript, have some auto-completion, and run it straight from Remix.

The default Workspace now contains TypeScript example files in it, so create a
new Workspace and test it out.


SEARCH

Thanks to Filip Mertens for this great feature!


ADDED PROVIDERS

We have added a bunch of providers to the list: Hardhat , Ganache andWallet
Connect for connecting to your mobile app.


WUMBO ON TWITTER: "THIS IS COOL, THE @ETHEREUMREMIX IDE NOW ALLOWS YOU TO USE
YOUR OWN LOCAL NODE FOR TESTING! PIC.TWITTER.COM/3KYZALWJ5P / TWITTER"

This is cool, the @EthereumRemix IDE now allows you to use your own local node
for testing! pic.twitter.com/3kyZALwJ5p


TRUFFLE INTEGRATION

Same as we did with the hardhat integration, here’s the truffle one ;)

So, for the great Truffle users, it is now possible to run Truffle Compile
alongside the Remix Compilation.

 * install RemixD npm install -g @remixproject/remixd
 * go to your favorite Truffle directory and run remixd -s ./
 * go to https://remix.ethereum.org and click on the Workspace dropdown list and
   select localhost
 * go to the Solidity Compiler panel, and check Enable Truffle Compilation and
   hit Compile. Truffle will also compile, and the result will be displayed in
   the Remix Terminal

More info on this is in our documentation.


NEXT NEXT ;)

The next release is actually coming very very soon ;) so please reach out to us
here if you would like to be part of the next Beta Testing session. Looking
forward to talk to you.

The next releases will include:

 * Prioritize deployment on L2
 * Proper Solidity integration in our Monaco Editor
 * Better integration with the Solidity Compiler input
 * Deploy / upgrade Proxy Contracts from Remix
 * Create Workspace of specific type (ERC20, ERC721, etc.)

Please report any problems you find in Remix. Also, please send us your
suggestions about any changes you’d like to see in Remix, or any functionality
you think would be useful to add.

For future releases, we are looking for more Beta Testers. If you are interested
in helping this effort please fill out this form.

We constantly strive to make the Remix IDE more convenient and easy to use. You
can reach us on Twitter, Gitter, or via email (remix@ethereum.org) or Discord.
TIA!

--------------------------------------------------------------------------------

Remix 0.23.0 Release was originally published in Remix Project on Medium, where
people are continuing the conversation by highlighting and responding to this
story.

READ MORE

--------------------------------------------------------------------------------


REMIX V0.22.0 & V0.22.1 RELEASED

Author: Rob Stupay

MAR 18

> “Always start out with a larger pot than what you think you need.”
>  — Julia Child


THE BIG NEWS

 * Our pot just got bigger! With Release v0.22.0, Remix stores files with
   IndexedDB, vastly increasing browser storage capacity. Bigger Is More and
   More Bigger is Better.
 * You can now run Mocha unit tests on Solidity files!
 * Debugging a transaction from a verified contract will now search both
   Sourcify and Etherscan to get the source code.


FILE STORAGE

In this release, we are implementing IndexedDB, which greatly expands the
storage space. This change involves some behind the scenes work to move your
files to IndexedDB.

When you load Remix v0.22.0 (or greater) for the first time, Remix autocopies
your workspaces and files from their old home in localstorage to their new home
in IndexedDB. But, before this new version of Remix loads, you will be asked if
you want to download your workspaces.

Its always nice to have a backup!

When Remix starts to load this first time, it could take longer than usual, but
probably less than 30 seconds. Once loaded, if the migration to IndexedDB has
been successful, your workspaces and files will be in the File Explorer.

If you do have problems, you should go to the Restore Backup link on the home
tab to upload the zip file that you had just downloaded.

Note: in the move to IndexedDB, Remix has merely copied your files over. The
original files ( and workspaces) are still in localstorage and will stay there
until you clear that storage.

Here’s the tool to upload your backups. It is not new in this release.

If you happen to open the .zip file that was downloaded, the relevant files are
in a folder called .workspaces. On a Mac this folder is hidden — because it
starts with a dot (.). To make it visible Mac users should press:

Command + Shift + . 

ALTHOUGH REMIX STORAGE IS NOW A LOT BIGGER, IT IS STILL ONLY STORED IN YOUR
BROWSER AND NOT ON A SERVER

Coding in Remix IDE Online is different from writing in a Google doc. Yes, both
are written in a browser but a Google doc saves your work to Google’s servers,
and Remix — out of the box — only saves your code to your browser’s storage. So
tread carefully, browser storage is not permanent!
(To save file to you computer’s hard drive, use Remixd or Remix
Desktop — see below)

If you clear the IndexedDB storage or if your browser crashes hard, you’ll lose
your work. For more info about saving your work see our article Securing your
Files in Remix & How to Clone and Push to a Git Repo

WANT TO SAVE FILES ON YOUR COMPUTER? USE REMIXD OR REMIX DESKTOP

With some configuration and the terminal script, Remixd running, you can save
your work directly to your computer’s hard drive. For more info, go the Remixd
docs. You can also use our Desktop app — Remix Desktop.

Or save you work on Github with the DGIT plugin.


DGIT

The DGIT plugin has not changed much in this release, but you will see just how
HUGE the storage capacity is of IndexedDB.

And now with this release, when cloning a huge repo with DGIT, you won’t crash
the browser due to a lack of storage space. For more info, see our article on
the DGIT plugin.


SETTINGS

The settings panel has a new button to restore default settings:

Not surprisingly, this button will restore the “out of the box” settings in
Remix. It will also erase files in localstorage. It won’t erase files that are
stored in IndexedDB.

From release v0.22.0 onward, the files you see in the File Explorer are from
IndexedDB, so, if you see your files there, you can click this button and you
won’t be erasing your work.

If you don’t see your files in the File Explorer after opening this version of
Remix — so you are having trouble migrating your work to IndexedDB, do not click
this button until you have downloaded a backup.

If, before this release, you had a lot of files in the File Explorer and now
with this release, you see your files in the File Explorer — but Remix is acting
strangely, you probably should click this button. When Remix migrated your files
to indexedDB, it did not erase them, it copied them. So they are sitting there
in localstorage, unused and taking up space. So clicking this button will free
up the localstorage.

Of course, if you have any doubts, make sure you have either downloaded the
backup of your workspaces or have pushed your work to an external repo.


JS UNIT TESTING WITH MOCHA

You can now use the Chai assertion library with the Mocha unit testing framework
in Remix. See the Remix docs for more instructions as well as info about JS
unit testing.

Try it out! Create a .js testing file in the File Explorer. Just for organizing
your workspace, put it in the scripts folder. Write your tests like these:

And then run the tests by right clicking on the .js file in the File Explorer to
get the context menu and then selecting Run.

LOOKING TO TEST WITH FUNCTIONS FROM HARDHAT’S PLUGIN HARDHAT-ETHERS? GROOVE
ON THIS:

Remix now supports methods of hardhat-ethers plugin of Hardhat framework. For a
list of the specific functions from this plugin that Remix supports, please
check here.


SOLIDITY COMPILER & HARDHAT INTEGRATION

By default, in the Settings panel, the generate contract metadata is selected.
When it is selected, Remix will generate the contract’s metadata and will put
these .json files in the artifacts folder. With this release, Remix will also
generate a build_info folder that stores the same information that would have
been generated if the file was compiled with Hardhat.


DEBUGGING TRANSACTIONS OF VERIFIED CONTRACTS

You can debug a transaction of a verified contract in Remix. In this release, we
search both Sourcify and Etherscan for the sourcecode.

If located, Remix will fetch the file and store it in the File Explorer.

When you go through the debugger, Remix will open the code in the Editor with
source highlighting.

But remember, before Remix will fetch the file, you have to select the right
Environment in the Deploy & Run plugin, and you have to select the right network
in Metamask. And if Remix is fetching the file from Etherscan, you need to put
in your Etherscan API key in the Settings panel.


IMPORT SOLIDITY STANDARD JSON FILES VIA A URL PARAM

You can now use the URL parameter: url to import a file and open it in
the Editor.

https://remix.ethereum.org/#url=https://raw.githubusercontent.com/ryestew/nasalNFT/master/contracts/nasalNFT.sol

Thanks to kvhnuke for this PR!


A SHOUTOUT TO OUR BETATESTERS!

Special thanks also goes out to our volunteer group of official beta testers for
this release. They raised relevant GitHub issues, and their diligence made the
release process go much more smoothly to the ultimate benefit of the entire
Remix community. They will be rewarded with the official “Remix Beta Tester”
role for v0.22.0.

If you are interested in becoming a beta tester, or in participating in our
ongoing UX research program, please fill out this form, and we will be in touch.


REMIX AT DEVCONNECT IN AMSTERDAM

On Friday April 22, Remix will be hosting an event at Devconnect, Game Day
Remix. All experience levels are welcome. Attendees will be able to Ask Remix
Anything, and play the Remix virtual obstacle course through smart contract
development. You’ll learn some Remix tricks on the way to helping our UX
research, and earn a Remix Devconnector badge, with additional rewards when
everyone finishes the 2-hour journey. Your ticket also includes entry to
Devconnect Happy Hour right afterward. Free to participate, but attendance is
capped at 40. To reserve your spot, track the Devconnect schedule for updates
and ticketing.


THANK YOU GLORIOUS USERS

Please report any problems you find in Remix. Also please send us your
suggestions about any changes you’d like to see in Remix, or any functionality
you think would be useful to add.

For future releases, we are looking for more Beta Testers. If you are interested
in helping this effort please fill out this questionnaire.

We strive to make the Remix IDE more convenient and easy to use. You can reach
us on Twitter, Gitter, or via email (remix@ethereum.org) or Discord.
TIA!

--------------------------------------------------------------------------------

Remix v0.22.0 & v0.22.1 Released was originally published in Remix Project on
Medium, where people are continuing the conversation by highlighting and
responding to this story.

READ MORE

--------------------------------------------------------------------------------


REMIX FOR HACKATHONS

Author: Rob Stupay

FEB 18

So, you’ve signed up for a hackathon and need to get your development
environment together. And, you’ve chosen Remix because there’s no set up
required to get going. Maybe you’ve used Remix before, and maybe not. This guide
will show you a number of tools that can help you use Remix to the max.

Let’s take a look at what you might encounter at a typical hackathon.

 * Learning and learning fast
 * Saving code — yes you’ll be writing code, but you better know where it is
   being saved!
 * Collaboration — often with other devs you have not met, often with devs who
   are not in the same room, and often with devs using other tools like Hardhat
   or Truffle. Remember, you’ll be doing more than just coding, you’ll be coding
   and explaining your code, justifying your code, and asking for HELP!!!
 * Importing code from other projects
 * Using normal development tools like debugging and unit testing
 * Deploying to multiple chains
 * Prototyping a front end — at least to prove to a judge that your code
   is working


LEARNING

LEARNETH PLUGIN FOR REMIX AND SOLIDITY TUTORIALS

Remix has a tutorial plugin called Learneth that has tutorials right in Remix.

You can active it by clicking on the LEARNETH button on the home tab or by
clicking the Plugin icon at the bottom of the icon panel.

The Solidity Beginner Course, walks you through examples presented on Solidity
by Example, which is another great resource for learning Solidity.

REMIX DOCS AND ARTICLES

For getting up to speed on Remix, check out the Remix documentation and the
Remix Medium publication.


SAVING FILES IN REMIX

Remix is not like a Google doc that saves work to your account on Google
servers. Remix has no user accounts. By default, Remix only saves your code to
your browser’s storage. However, if you run a terminal script called Remixd, you
can save your work to a folder on your hard drive.


SHOULD YOU SAVE TO YOUR COMPUTER’S HARD DRIVE OR TO BROWSER STORAGE?

SAVING TO BROWSER STORAGE

The default behavior of Remix is to save files to your browser’s local storage.
Take note:

 1. If your browser crashes or if you clear you browser storage, you can lose
    your work. But you can backup your work by PUSHING to GitHub or IPFS -using
    the DGit plugin.
    See this article and this article for more info about DGit.
 2. Browser storage is inherently limited to 5–10MB (depending upon how you
    count it), although in the next Remix release we will be integrating
    IndexedDB which will vastly increase the browser storage capacity when
    using Remix.

NEWS FLASH: IndexedDB is now available now on Remix-alpha and will be on Remix in the next release coming in a few weeks.

SAVING TO A FOLDER ON YOUR COMPUTER’S HARD DRIVE WITH REMIXD

Did I just hear you say, “WHAT??” Can Remix let you break the browser’s security
sandbox? Yes, when running the script Remixd, you must specify a folder on your
hard drive that Remix is allowed to read and write to, as well as the specific
Remix URL, so that only the Remix web app is allowed to access your machine.

In Remix’s Files Explorer, in the Workspaces pull-down, select the -connect to
localhost- option.

Then a modal will appear with more instructions.

Once Remixd is running, you can run Git from a terminal command line to push and
pull to remote repos.

When using Remixd, you don’t need DGit because you are handling the version
control on your hard drive — and you do all your pushing and pulling from there.

See the Remixd docs for more info.


COLLABORATION: SHARING REPOS

You’ll probably be sharing a remote repo on GitHub. So if you are using Remixd,
you will be pushing and pulling using GIT on the command line from you
computer’s terminal window.

If you are not using Remixd, then you’ll be using the DGit plugin to manage Git.

Here are a few details about DGit, because many of you don’t know about it. (For
even more info about it see this article and this article.)

Using DGit, you can clone, push, and pull to remote repos.

You can see diffs — side by side or on top of each other.

In the CHANGES section, click the name of a file.

In Remix’s editor, a tab will open with the diff:

You can view side by side, or not side by side by checking the side by side box.


HACKATHONS REQUIRE COLLABORATION: SHARING EXAMPLES WITH GISTS

Creating a GIST of file or a folder is easy in Remix — just right click in the
Files Explorer.

You may need to add your Git access token using the Settings tab of Remix by
clicking the gear icon at the bottom of the icon panel.


EXPLAINING YOUR LOGIC TO OTHERS

At hackathons, you are most often designing new software, so to be most
successful you need to explain the logic of your code. Fortunately, there are
tools for that.

NATSPEC COMMENTS

Do you know about the special comments called NatSpec that you can put into
Solidity? These get compiled into the contract’s metadata, and can be used for
lots of interesting things like the EthDoc Generator — see below.

To learn more about NatSpec go here:
https://solidity.readthedocs.io/en/develop/natspec-format.html

ETHDOC GENERATOR

To first activate the EThDoc Generator, you might also need to activate the
EThDoc Viewer. The EthDoc Generator grabs the @dev section of the NatSpec
comments in your code, and generates a file in a tab of the main panel.

It will list out all the functions and their inputs.

This doc only resides in the EthDoc documentation viewer and cannot currently be
exported. But, you can make a series of screenshots with it to explain
some logic.


IMPORTING SOLIDITY CODE

At hacks, you’ll need to import some files — either to start ripping apart
someone else's files for your own nefarious scheme (AKA to edit) or to import a
library or a dependency (for files you won’t be editing).

IMPORTING FILES TO EDIT

To import a GIST, or from GitHub, IPFS, or via HTTPS, use one of the buttons in
the IMPORT FROM section of the home tab. See bottom of the image below:

IMPORTING DEPENDENCIES

The dependencies do not need to be “preloaded” into the Files Explorer’s current
Workspace before the contract is compiled.

Files loaded from the import statement are placed in the Files Explorer’s
current Workspace’s .deps folder. Under the hood, Remix checks to see if the
files are already loaded in the .deps directory. If not, it gets them via unpkg
if it is an NPM lib.

Here are some example import statements:

From NPM

import "@openzeppelin/contracts@4.2.0/token/ERC20/ERC20.sol";

From GitHub

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v2.5.0/contracts/math/SafeMath.sol";

See the Remix docs about importing for more info.

Also, if you are starting with an Open Zeppelin project, you should check out
the Open Zeppelin Wizard. Remember to use the Open in Remix button!

FETCHING VERIFIED CONTRACTS

Verified contracts can be fetched with the Sourcify plugin. You can activate the
plugin in the home tab or go to the Plugin Manager. Use the Fetch button in the
plugin and let it rip.


WORKING WITH OTHERS WHO ARE DEVELOPING ON HARDHAT

To use a Hardhat project in Remix, you need to be running Remixd.

> Hardhat projects are npm projects with the hardhat package installed and a
> hardhat.config.js file. –Hardhat documentation

Remixd looks for the hardhat.config.js file in a shared folder, and if it finds
the file, the Hardhat websocket listener will run.

COMPILING

In the Solidity Compiler, right above the Compile button, there will be an
additional checkbox that says Enable Hardhat Compilation.

Check this box and click on Compile.

When the contract is compiled in Remix, Hardhat’s compilation will also be
performed with the compiler configuration defined in the Solidity Compiler
plugin. A file named remix-compiler.config.js will be created in the root
directory of the project. This file holds the compiler configuration from Remix.

The result of the Hardhat compilation will be shown in Remix’s terminal

DEPLOYING TO A HARDHAT CHAIN

Remix has a plugin called Hardhat Provider to add an additional choice in the
ENVIRONMENT section of the Deploy & Run plugin.

For more info check the Remix Hardhat docs and our post about Remix Hardhat
integration.


DEBUGGING TOOLS INCLUDING THE DEBUGGER

CONSOLE.LOG

Debugging can include more than just using the Debugger. For example, one of
Hardhat’s most popular features is their console.log. Remix has this
functionality too — you just need to use the line

import "hardhat/console.log";

And put console.log with the variable you’d like to display.

And the log will display in the Remix console.

You can also use this with the Solidity Unit Testing plugin.

For more info about console.log, check the docs.


DEBUGGER

To launch the Debugger, click the debug button in a transaction receipt in the
Remix terminal.

For a quick intro to the Debugger, you can use the sliders or the step buttons
to move around the code. And by adding break points you can jump add stops and
assess what the state and local variables are.

For more info on the Debugger — check this post and check the Remix
Debugger docs.


DEPLOYING TO L2

In most cases, L2s run Solidity. As a result, in most cases you just need to
develop in Solidity as you usually would, and compile. When you deploy, you need
to choose Injected Web3, and then choose the L2 of your choice in Metamask. But
to deploy to an L2, you need to have its currency in your metamask account!

STARKWARE

Starkware is a bit different because it is written in the Cairo language. Remix
has a Starkware plugin that allows you to develop in Cairo.

To try this out, you need to have a .cairo file to compile.


GETTING THE FRONT END TOGETHER

GENERATING A CONTRACT’S ABI

To get a contract’s ABI, compile the contract and click the ABI button at the
bottom of the Solidity Compiler.

GETTING UP TO SPEED ON ETHERS.JS

Ethers Playground

RUNNING SCRIPTS IN REMIX

You can run async/await scripts that use web3.js or ethers.js.
Right click on a script to run it.

SHOWING A JUDGE THE CONTRACT IN REMIX

If your contract is working, you can show a judge Remix with the Deploy & Run
plugin active. And interact with some functions there. They’ll get the idea.


GOOD LUCK OUT THERE!

Now go get BUIDLING!!


REMIX IS LOOKING FOR BETA TESTERS

If you like to help improve Remix please fill out this form.


REMIX GITTER AND DISCORD AND TWITTER

Please join our public Gitter channel and our Discord channel. On Twitter we are
EthereumRemix.

--------------------------------------------------------------------------------

Remix for Hackathons was originally published in Remix Project on Medium, where
people are continuing the conversation by highlighting and responding to this
story.

READ MORE

--------------------------------------------------------------------------------


SECURING YOU FILE IN REMIX, HOW TO CLONE AND PUSH

Author: Yann Levreau

FEB 18


SECURING YOUR FILES IN REMIX & HOW TO CLONE AND PUSH TO A GIT REPO

Coding in Remix IDE Online is different from writing in a Google doc. Yes, both
are written in a browser but a Google doc saves your work to Google’s servers,
and Remix—out of the box—only saves your code to your browser’s storage. So
tread carefully, browser storage is not permanent!

If you clear your browser storage or if your browser crashes hard, you’ll lose
your work. And typically browser storage is pretty limited to about 5MB. While
you can pack a lot of solidity files into 5MB, you don’t want to lose your work
if the browser crashes.

SPOILER ALERT: In the next Remix release, we will be using IndexedDB which greatly expands the storage capacity of the browser. And, you can use this now on https://remix-alpha.ethereum.org

SPOILER OF THE SPOILER ALERT: If you clear your storage, or if the browser crashes while using IndexedDB, you will still lose your files.

With some configuration and the terminal script, Remixd running, it is possible
to save your work directly to your computer’s hard drive. This article does not
cover Remixd. For more info, go the Remixd docs.


AVOID LOSING YOUR WORK— USE THE DGIT PLUGIN!

The DGit plugin allows you to PUSH as well as all the other Git operations that
you are used to, plus a few you are probably not used to.

This post is a short tutorial on how to use the DGit plugin to push and secure
your files in GitHub.


SETUP, CLONE, AND PUSH

 1. Go to the Plugin Manager in Remix and activate the DGit plugin

2. Click on the DGIT icon to display its UI.

Here are some more details about a few of these sections:

 * SOURCE CONTROL: Stage, unstage, and commit your files. It is also possible to
   display a diff by clicking on the file name.
 * CLONE, PUSH, PULL & REMOTES: Clone, push, and add a remote repository
 * GITHUB SETTINGS: Set your GitHub token, name, and email to push/pull and
   clone private repositories
 * COMMITS: Display the commits (you can also checkout a commit from here)
 * BRANCHES: Create a branch and checkout a branch
 * IPFS EXPORT/IMPORT/SETTINGS: Clone or push to an IPFS server instead
   of GitHub

3. Expand the GitHub section, put the URL of the repository, and click on CLONE
to clone it. If you want to Push it later, clone a repo that you have the rights
to push to.

4. A new workspace is created with the cloned repository.

5. To make a new branch: In the BRANCHES section, create a new branch by naming
it in the branch name text box, then click the git branch button. Then hit the
Checkout button next to it to check it out. The workspace is now tied to this
new branch.

6. Before you push to your remote repo: you need to specify a personal access
token, name, and email to identify your account to the GitHub platform.

7. Before you push (one more thing): make sure you are going to push to the
right remote. In the GITHUB section, check that the repo you want to push to is
the one selected in the AVAILABLE REMOTES subsection. If it is not yet there,
add it in the GIT REMOTE section.

8. Now click push.

At this point you can go to the repo on GitHub and create a Pull Request.

9. Now edit some code: go the FILES EXPLORER, choose a file and add to it in the
editor. Then come back to the DGit plugin. Expand the SOURCE CONTROL section.
From here you can stage the file (AKA “add”), rollback the changes, see the diff
and commit. Once it’s committed, go back to the GITHUB section and push again
(same as step 8). The changes are also visible in the pull request — just
like usual.

For more info about the Remix DGit plugin also check this article.

Ok that’s it! I hope you liked this short post. You can reach us on Twitter,
Gitter, or via email (remix@ethereum.org) or Discord.

We would really like your feedback on this! For future releases, we are looking
for Beta Testers. If you are interested in helping this effort please fill out
this questionnaire.

Hope to hear from you soon!

--------------------------------------------------------------------------------

Securing you file in Remix, how to clone and push was originally published in
Remix Project on Medium, where people are continuing the conversation by
highlighting and responding to this story.

READ MORE

--------------------------------------------------------------------------------




Clear console
0
listen on all transactions

Welcome to Remix 0.27.0-dev

Your files are stored in indexedDB, 63.8 KB / 4.77 MB used

You can use this terminal to:
 * Check transactions details and start debugging.
 * Execute JavaScript scripts:
   - Input a script directly in the command line interface
   - Select a Javascript file in the file explorer and then run
   \`remix.execute()\` or \`remix.exeCurrent()\` in the command line interface
   - Right click on a JavaScript file in the file explorer and then click
   \`Run\`

The following libraries are accessible:
 * web3 version 1.5.2
 * ethers.js
 * remix

Type the library name to see available commands.

>



Close




ALERT

Close

OK



Close

Close





WELCOME TO REMIX IDE

×
Click to launch the Home tab that contains links, tips, and shortcuts..
 *  
 *  
 *  



BackNext