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
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