Remix Project
Published in

Remix Project

Remix v0.25.0 Released

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!

--

--

In browser editor for developing, debugging and deploying Solidity contracts

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store