remixipfs-compiler.com
Open in
urlscan Pro
2a06:98c1:3121::9
Public Scan
URL:
http://remixipfs-compiler.com/
Submission: On December 29 via api from US — Scanned from NL
Submission: On December 29 via api from US — Scanned from NL
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="sidePanel" 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="mainPanel" 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="none" data-id="localPluginRadioButtonnone" value="none"><label class="form-check-label" for="none">None</label></div>
</div>
</form>
Text Content
REMIX IDE REMIX IDE loading compiler... FILE EXPLORERS 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 Javascript VM at load Word wrap in editor Enable Personal Mode for web3 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 TOKEN: Remove THEMES Dark (dark) Light (light) Midcentury (light) Black (dark) Candy (light) Cerulean (light) Flatly (light) Spacelab (light) Cyborg (dark) Connect to a Local Plugin Active Modules1 SOLIDITY COMPILER DEACTIVATE Compile solidity contracts Inactive Modules29 CELOBETA ACTIVATE Deploy and Run Transactions with Celo. CODE BY WELLDONE STUDIOBETA ACTIVATE Multi-Chain Deploy and Run Transactions CONTRACT DEPLOYERALPHA ACTIVATE Deploy a compiled contract to the same address on multiple networks CONTRACT VERIFICATION - SOURCIFY ACTIVATE Solidity contract and metadata verification service COOKBOOK.DEV ACTIVATE Find any smart contract, protocol, and library. DEBUGGER ACTIVATE Debug transactions DEFI EXPLORER ACTIVATE Explore Defi smart contracts DEFI TUTORIALSALPHA ACTIVATE Learn about Defi DGIT ACTIVATE Manage workspaces in a git repository. DGIT DIFF ACTIVATE Diff viewer for the DGIT plugin. HARDHAT PROVIDER ACTIVATE Hardhat provider KLAYTN ACTIVATE Deploy and Run Transactions with Klaytn. LEARNETHBETA ACTIVATE Learn Ethereum with Remix! LEXONALPHA ACTIVATE Compile Lexon contracts 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. REMIXD ACTIVATE Using Remixd daemon, allow to access file system RESTORE BACKUP ZIP ACTIVATE Use this to restore your Remix backup zip files to the new workspaces. SOLHINT LINTER ACTIVATE Linter for Solidity SOLIDITY STATIC ANALYSIS ACTIVATE Checks the contract code for security vulnerabilities and bad practices. SOLIDITY UNIT TESTING ACTIVATE Fast tool to generate unit tests for your contracts STARKNET 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 WALLET CONNECT ACTIVATE Use an external wallet for transacting ZKSYNC ACTIVATE Compile and deploy smart contracts for zkSync Era. 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 WorkspacesCreateRenameDeletedefault_workspace - connect to localhost - * 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 URLlatest local version - soljson-v0.8.7+commit.e28d00a7.js0.8.23+commit.f704f3620.8.22+commit.4fc1097e0.8.21+commit.d9974bed0.8.20+commit.a1b79de60.8.19+commit.7dd6d4040.8.18+commit.87f61d960.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 LanguageSolidityYul EVM Versioncompiler defaultlondonberlinistanbulpetersburgconstantinoplebyzantiumspuriousDragontangerineWhistlehomestead Compiler Configuration Auto compile Enable optimization Hide warnings Compile <no file selected> No Contract Compiled Yet Close OK Close Close Close Environment Remix VM (London) Remix VM (Berlin) Injected Provider - Metamask Web3 Providercheck out docs to setup Environment Account Copy value to clipboard Sign a message using this account key Gas limit Value WeiGweiFinneyEther Contract No contract compiled yet or compilation failed. Please check the compile tab for more information. ABI file selected No compiled contracts or At Address Transactions recorded 0 Deployed Contracts Clear instances list and reset recorder Currently you have no contract instances to interact with. Zoom outZoom in * Home Scroll to see all tabs 1 Enter to Rename, Shift+Enter to Preview QUICKLINKS Guidefor migrating the old File System Migration tools: Basic migrationDownload all Files as a backup zipRestore filesfrom backup zip Help: Gitter channel Report on Github REMIX The Native IDE for Web3 Development FEATURED PLUGINS SolidityOptimismLearnEthSolhint linterSourcify More FILE New File Open Files Connect to Localhost LOAD FROM: GistGitHubIpfshttps RESOURCES Documentation Gitter channel Featuring website Old experience 19 Dec CIRCOM IN REMIX PART 2: PLAYTIME Author: Rob Stupay The Remix Circom plugin is a great tool for getting started with writing ZK circuits in Circom. The Remix innovation here is that we’ve got the Circom compiler working in the browser. This makes playing with Circom easier because… well, because it’s Remix, so no setup is needed. Just keep in mind that the plugin is in alpha, so it’s not for production use yet. Under the hood, the Remix Circom plugin’s GUI (graphical user interface) organizes your data into the correct parameters for the methods in snarks.js, so you don’t need to dig too deep there unless you want to. And if you want to, we also have scripts you can adapt that use snarks.js and ethers.js. LINK TO PART 1 Part 1 Circom in Remix article (the definitions) COMPONENTS OF THE PROOF At a high level, to make a proof with a ZK system, you need: 1. The inputs — both private and public 2. The circuit 3. The witness 4. The constraint system 5. The signals ( the inputs, outputs, and intermediary steps of the circuit) 6. The special random number (the trusted setup, from the perpetual Powers of Tau ceremony) If these components don’t make sense, please see Part 1 of this series. The proof can be generated and verified, and it can be submitted for on-chain verification via a Solidity file which we will be generating later in this article. Let’s take a walk through the Circom compiler plugin. REMIX’S SIMPLEST ZK SNARK EXAMPLE Let’s choose a very basic example to start with. Remix has added some Workspace Templates for Circom. When you choose one of these templates, the Circom compiler will automatically activate. To see these templates, create a new Workspace by clicking on the hamburger menu in the File Explorer and choosing the Create option. Then, in the modal that comes up, click the Choose a template pulldown menu, and the following list will come up: The most basic Circom example file is the simple.circom file which is located in the Semphore template. So to start, choose this template. Here’s the compiler: In order to use the plugin you will need to have a .circom file active in the File Explorer, so choose simple.circom. Then go to the Circom compiler and the compile button can be used. > Note: If the active file in the Editor is not a Circom file, the compile > button in the plugin cannot be clicked. You can either hit the Compile button or use the Ctrl+S keyboard shortcut as shown above in the tool-tip. The compilation result will be stored in a .wasm file in the .bin directory that is inside the circuits folder. Next, create the R1CS constraint file by clicking the button. Generate R1CS button with tooltip This creates the simple.r1cs file in the .bin directory. Generating the R1CS file can take longer than compiling the .circom file. COMPUTE WITNESS The prover inputs their private info for the circuit in this section. Now dial down the Compute Witness caret. I’ve input the following: So my private info is 3 & 4. When I hit the compute button, a .wtn file is created in the .bin folder. FILES GENERATED SO FAR We now have: * simple.wasm (the compilation result) * simple.r1cs (the constraint file) * simple.wtn (the witness file) Notice there is no proof file, nor have we generated a Solidity file for doing an on-chain verification of the proof. Currently in the Remix Circom plugin, these steps can only be done by running scripts. USING THE SCRIPTS IN THE CIRCOM COMPILER Let’s switch to a different Workspace Template to go through the run_setup and run_verification scripts. Hash Checker template has fewer parameters in its scripts than the Semphore template does. So load this template up. BEFORE RUNNING A SCRIPT Scripts need a compiled circom file to work with. So before running a script in this plugin, compile calculate_hash.circom (by making it the active file in the Editor and then in the Circom plugin’s GUI, by clicking the compile button). This will generate the file calculate_hash.wasm in the ./circuits/.bin folder. RUN_SETUP.TS First, the run_setup.ts script creates the .r1cs file in the circuits/.bin directory, just like the Generate R1CS button did. The setup script will then take the special randomness of the Powers of Tau ceremony, and will contribute to it and add its phase2 as described in the snarks.js docs and in the Circom docs. > The trusted setup consists of two parts: > • The powers of tau, which is independent of the circuit > • The phase 2, which depends on the circuit > - from Circom Docs The verification keys will be generated and stored in this file: zk/build/verification_key.json The Solidity file for verifying the proof will also be saved in this directory. Finally the zk_setup.txt will be generated and saved in this directory, which will be used for getting the zkey_final parameter when running run_verification.ts. Here’s what the build folder will contain after running run_setup.ts: RUN_VERIFICATION.TS This script makes the proof. The inputs for the proof include: 1. The private information: these are hard coded on lines 31–34 2. The other preliminary files that were created in run_setup.ts, including: calculate_hash.r1cs, calculate_hash.wasm, zk_setup.txt, verification_key.json It will create the proof andthe public signals with this line: const { proof, publicSignals } = await snarkjs.groth16.prove(zkey_final, wtns); And then it will take the proof and the publicSignals, and will verify them with this line: const verified = await snarkjs.groth16.verify(vKey, publicSignals, proof, logger); From here, see if you can use the zk_verifier.sol file. Also, try inputting a wrong value into the proof (see line 36) to see what will happen. COMMENTS WELCOME AND NEEDED The Remix Circom plugin is in Alpha, so please send your comments. One of our next updates to the plugin will a button for generating a proof. More Remix Circom Workspace templates are also coming. Join our Discord server and comment there, or send us an email to remix@ethereum.org! We will have articles about each of the Circom Remix Workspaces: Semaphore, Hash Checker, and the Rate Limiting Nullifier later in this series. -------------------------------------------------------------------------------- Circom in Remix Part 2: Playtime was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 19 Dec CIRCOM IN REMIX PART 1: DEFINITIONS Author: Rob Stupay Remix now has a Circom Compiler for running circuits and generating ZK Proofs. This is Part 1 of a 2-part series about Circom in Remix. This article goes through ZKProof vocabulary and concepts so you can understand the interface of the Remix Circom compiler. But, if you want to jump ahead, here’s the link to Part 2. In order to work with Circom, you should go through their docs and their ZK Background page. Many of the definitions contained in this article are from this excellent video, Arithmetic Circuits in Circom v2.0 by Darth Cy. BASIC ELEMENTS OF A ZK-SNARK A ZKProof, contains these elements: * Public inputs that are known to everyone * Private inputs that are only known to the prover, who claims that these are the right inputs for solving the problem. * Problem: a function that takes private and public inputs. It is also the circuit, which we will get into below. * Prover: a person who knows the solution (the private inputs) for the problem. The prover runs the program that executes the circuit and generates a proof. * Verifier: a program or a person that takes a proof (with the public inputs), and can verify its validity without needing the private inputs. THE MECHANISM OF A ZK PROOF In a proof, there is the original, private input which is encoded and transformed into a polynomial equation. Then a prover comes along and says they have the same private input which is also encoded and transformed into another polynomial equation. But both of these equations are not visible because a forged proof could be made if the equation itself is known. So a verification system is setup that tests the two equations by feeding them arbitrary data and checking that the results are the same. The arbitrary data must indeed be random, otherwise the proof of the private input could be faked. Now let’s get into a technical glossary of the basics. CIRCOM Circom is a low-level language that describes mathematical procedures by simplifying complex mathematical operations into circuits. CIRCUITS In the context of Circom, a circuit is a mathematical equation — a polynomial equation. It is written with a series of logic gates. The logic gates of Circom can either be where two numbers are multiplied, or where an arbitrary set of numbers are added. So this equation: is rewritten as steps, where x is multiplied by x, and then the result of that is multiplied by y, and that result is added to 6. This is also referred to as “flattening” the equation. Then, each step of the equation is a multiplication or summation logic gate. By breaking down a complex equation into smaller steps, there will be intermediary outputs. These intermediary outputs in the formula above are m1 and m2. SIGNALS Signals can be the original inputs, the intermediate outputs, or the final output. TEMPLATES Templates are the building blocks of the Circom language. They take signals as their inputs, and their outputs are also signals. In other languages, templates are known as classes. But take note that in Remix, templates, used in the context of Workspaces, are the files that load with a new Workspace. WITNESS The witness is generated from the signals which includes all inputs, outputs and intermediary signals. The intermediary signals are an ingredient in the witness to show that the circuit went through an honest execution. To generate the proof, only the witness is needed. CONSTRAINTS These are the individual steps in the computation of an equation. R1CS — RANK 1 CONSTRAINT SYSTEM R1CS is a protocol for organizing the constraints. For more, see this article. Basically, R1CS flattens the equation and organizes the arrangement. GROTH16 Groth16 is a proving system. As described above, verification is done by sending a set of arbitrary data to the circuit and checking that it returns the same results as the circuit derived from the original private input. RANDOMNESS It is essential that the arbitrary data fed into the circuits are truly random, otherwise a proof could be forged. The process of getting the random points is the Trusted Setup. Also see Darth Cy’s video about Groth16, as well as Vitalik Buterin’s 2016 article. TRUSTED SETUP The trusted setup is the process of creating a dataset of random numbers. It involves any number of parties contributing randomness (also called “entropy”) to a dataset. The trusted setup is called a ceremony, and the specific one for Groth16 is the Powers of Tau ceremony. Once the randomness from the ceremony is encapsulated into a randomness file, it is prepared for phase2. PHASE2 Groth16 needs two types of random number sets: * a set from a trusted setup and that have nothing to do with a specific circuit * Phase2 number sets which are specific to a circuit The preparation the Phase2 dataset is a process that first involves the creation of a final ceremony file. Then the circuit you are working with is “intertwine” and a ZKEY file is produced. The ZKEY file is required every time you want to generate a proof for this particular circuit. Typically, additional randomness is added to the ZKEY file. Like French cooks who always add butter, ZKP chefs are always adding randomness to their recipes. Read more about Phase2 in the snarksjs docs. GENERATING A PROOF To generate the proof you need: 1. Circuit-specific witness calculator — a program, which calculates witness from input signals (private and public) 2. ZKey file which is a representation of the circuit 3. input.json — a file with public and private signals. THE BACKGROUND IS DONE! It’s time to find the proof in the pudding. And by the way, the proof in this pudding is not in the eating, it is in evaluating the polynomials. So get your hands out of the dessert and into some honestly random data and circuits. Learn about how to use Remix’s Circom compiler in Part 2 , which you will find here. -------------------------------------------------------------------------------- Circom in Remix Part 1: Definitions was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 04 Dec REMIX RELEASE V0.38.0 Author: Aniket THE BIG NEWS * New Circom ZKP workspace templates: Hash Checker & Rate Limiting Nullifier * Define Solidity remappings in remappings.txt file * Alpha release for Solidity co-pilot * Run free function for any selection environment HASH CHECKER & RATE LIMITING NULLIFIER TEMPLATES FOR CIRCOM Building on our previous release that included a Semaphore template, we added more templates for Circom. To get to these templates, go to the hamburger menu in the File Explorer and make a new workspace and in the modal that comes up choose Now I realize Rate-Limiting Nullifier sounds like school yard epithet. > “You’re so boring!” > “Well you‘re a Rate-Limiting Nullifier” But Rate Limiting Nullifiers are used for limiting the number of “something” that a user can do — for example the number of allowable post to a form and once that number is exceeded then the offending person’s identity is revealed. It’s used in Zero Knowledge Proofs and it gets at the algebraic nature of Circom. Check out these new templates! SOLIDITY REMAPPINGS IN REMIX Create a file called remappings.txt in the root of your workspace and place your Solidity Remappings there. This will be especially familiar to you Foundry users. SOLIDITY COPILOT PLUGIN (ALPHA RELEASE) Check out our first forays into a version of Copilot for Solidity so you can get code suggestions in the editor. Then start coding away and see the suggestions. Adjust the Copilot settings in the Settings panel: THIS PLUGIN IN ALPHA Please join our discord and send us your comments about this plugin. THANK YOU KNOWLEDGEABLE REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about changes you’d like to see in Remix, or any functionality you think would be useful to add. We no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.38.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 08 Nov REMIX RELEASE V0.37.0 Author: Rob Stupay THE BIG NEWS * Circom plugin and ZKP Circom Semaphore template * ERC auto-complete will load the file * The Remix UI now translated into Spanish, French, Italian, and Simplified Chinese * Load Recent Workspaces * Start Coding Button * Updates for compatibility with OpenZeppelin v5.0 contracts CIRCOM PLUGIN AND ZKP CIRCOM SEMAPHORE TEMPLATE We’ve added a Semaphore Circom template which you can load by creating a new Workspace. When the template loads, our new Circom compiler plugin will load. Start playing with ZK Proofs in Remix! ERC AUTO-COMPLETE AND FILE LOADING Remix now auto-completes all the ERC files when typing “erc”. The selected ERC file will load in the Editor. Try this out in an empty file: And when you select one, the ERC file will be printed out, like this: THE REMIX IS NOW TRANSLATED INTO SPANISH, FRENCH, ITALIAN, AND SIMPLIFIED CHINESE The language can be chosen in three places: * At the top right of the Home Tab: * At the bottom of the Settings Panel * Via a URL by using the lang parameter with the language abbreviation: Big shout-out to our Spanish (Juan David), French (Mehdi Amari), Italian (matlemad). And another huge shout-out to @drafish who contributed the original i18n PRs as well as doing the Chinese translations along with Mocca. (Actually the Chinese translations have been around for a few months now). In case you didn’t know, the Remix docs are available in Chinese, Spanish, French, and Italian. To contribute to the translation of documentation, go to CrowdIn — Remix Translation our translation management platform. To contribute to the translation of the Remix UI go to CrowdIn-Remix UI. HOME TAB: RECENT WORKSPACES Your recent workspaces are now listed: HOME TAB: START CODING The Start Coding button will open up a new Workspace called Playground and will load a HelloWorld file in the Editor. SUPPORTING OPENZEPPELIN V5 We’ve updated our OpenZeppelin templates and have made the necessary updates to support the latest release of OpenZeppelin. THANK YOU WONDEROUS REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about 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 no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.37.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 27 Sep REMIX RELEASE V0.36.0 Author: Rob Stupay THE BIG NEWS * AI comes to Remix in the Editor and in the Solidity Compiler * More “Quick Fixes” * Ephemery and SKALE Chaos Testnet added to Deploy & Run CHATGPT AI IN THE EDITOR: EXPLAIN A FUNCTION AND GENERATE DOCUMENTATION You can now ask ChatGPT to explain a function or to generate documentation for a function — right in the editor. But to get this to work, in the Settings panel, make sure that the box is checked to “Enable code completion in Editor.” Then, with a Solidity file open in the Editor, you can “right-click” in the body of a function, which will reveal a pop-up menu. Click on the option “Explain the function” or “Generate documentation.” The explanation or documentation will print out in the terminal. AI IN THE SOLIDITY COMPILER: HELP WITH SOLIDITY ERRORS In the Solidity Compiler’s error “cards”, we’ve added a prompt: “Ask GPT” which, when clicked, will display an explanation of the error in the terminal. NEW “QUICK FIXES” IN THE EDITOR In the previous release we added Quick Fixes to the Editor. In this release, we have added more Quick Fixes to: * Add a specific pragma * Add required visibility for Fallback and Receive methods * Add data location (e.g. storage, memory, calldata) to constructor params, function params and variables * Add virtual or override to a function * Mark a contract abstract To make a “Quick Fix”, click on the big blue dot in the Editor. Then select the suggested correction. The “Quick Fix” will be input into the function. NEW ENVIRONMENTS IN DEPLOY & RUN TRANSACTIONS We’ve added two new options in the Environments select box of the Deploy & Run Transactions plugin. These options save you the trouble of configuring you browser wallet with the configuration info for these chains. EPHEMERY Ephemery is a testnet that resets after seven days. As a result, its faucets run without clogs. It’s a great chain for heavy testing. For more info check https://ephemery.dev or check the Ephemery Repo. SKALE CHAOS TESTNET The Chaos testnet is a project of Skale. Get tokens for this chain here or here. MORE ADDITIONS * In the Verification — Etherscan plugin, LineaScan is now supported, so contracts can now be verified there too. * Custom error details are now shown with Injected Web3 environment. Previously it was for VM only. THANK YOU WONDEROUS REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about 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 no longer follow the discussions on Gitter, so we encourage you to move over to our Discord server for community support. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.36.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 18 Aug REMIX RELEASE V0.35.0 Author: Rob Stupay THE BIG NEWS * “Quick Fixes” in the Remix Editor! * Take the Remix User Survey REMIX USER SURVEY Remix has a quick, one-minute survey to help us better understand you, dear user, and your development needs. You can find the link on the home tab in the Featured section. Or, just click here. QUICK FIXES IN THE REMIX EDITOR Now in Remix, fixing the license, the visibility, or the mutability is as easy as a swatting flies in a cow pasture. LICENSE FIXES Have you ever forgotten to add the license to a file, and then got the warning, and then forgot the syntax of the license? In the image below, I left out the license and I get the warning and this blue dot. If you can’t get the Quick Fix blue dot to appear, try clicking on the number for the line where the error occurs. When you click on the blue dot there are a few options: And selecting the open-source license will add this update to the file: VISIBILITY QUICK FIXES When a file has a visibility error because the visibility is not specified, the blue dot will appear to the left of the function. Click on the dot, and a popup menu will appear. MUTABILITY QUICK FIXES: VIEW With the quick fix from the image above the file will look like this: But the mutability has not been specified, so again the blue dot will appear. Clicking the dot will show this popup menu: MUTABILITY QUICK FIXES: PURE When the pure keyword is needed for a pure function, the Quick Fix will suggest it. Clicking the blue dot will yield the suggestion: And adding the suggestion will add the pure keyword. THANK YOU WONDEROUS REMIX USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about 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 have migrated our community channels off Gitter and on to Discord. Although we still follow the discussions on Gitter (now through Matrix), we encourage you to move over to our Discord server. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.35.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 29 Jun REMIX RELEASE V0.34.0 Author: Rob Stupay We have entered the time of year where you can listen to your neighbors singing in the shower as the tomatoes ripen in the garden. In this juicy Remix release, we are singing about Linting, Verifying, and Analyzing… 0.34.0’S BIG NEWS * Updates for the Etherscan Verification plugin including proxy contracts! * Linting is added to the Static Analysis plugin * The File Explorer’s Workspace hamburger menu has moved to the left. Go there to navigate all things Workspace! * New scripts for verification and deployment in the hamburger menu * New labels in Deploy & Run showing the EVM version * Remix’s WalletConnect plugin is all set for WalletConnect v2.0 STATIC ANALYSIS The Solidity Static Analysis plugin has been renamed to Solidity Analyzers. The plugin is now packaged with the SolHint linter. The plugin also run Slither Static analysis (if you are connecting to your filesystem with Remixd) and of course Remix Static Analysis. To use the plugin, a file should be already compiled. As you can see above, Slither is disabled and will only work when you are connecting Remix to your local filesystem with Remixd. HAMBURGER HAMBURGER The Workspace hamburger menu is now in the top left corner of the Workspaces area of the File Explorer. And, inside the hamburger we’ve added a few new options: Add Etherscan scripts will add a folder inside the scripts folder containing two .ts files—one for verifying, and one for getting the GUID of a verified contract. The script for verifying has inputs for chain id and it will work for verifying a proxy contract. The Add contract deployer scripts also adds a couple of scripts. One script is for automating deployment, and the other is a factory for deploying a contract to different chains, but the contract’s address will be the same. Go forth and run scripts! KNOW YOUR CONTRACT’S EVM VERSION Not all EVM versions work on all chains. We’ve added a badge in Deploy & Run indicating which version of the EVM the contract was compiled with. ETHERSCAN PLUGIN For all you contract verifiers out there (which should be 100 percent of you) we’ve made some important updates to the Etherscan plugin. Of course, contract verification with Etherscan is not the only way to verify a contract. You can also use the Sourcify service (when deploying, check the box to publish to IPFS and the Sourcify service will be able to verify your contracts) or use the Remix Sourcify plugin. But I digress… The Etherscan plugin has been renamed and is now called: Contract Verification — Etherscan. You can access it from the Plugin Manager. As of this release, in addition to Ethereum Mainnet and testnets, this plugin now supports verification on other chains through the Etherscan family of block explorers. But you will need to choose one of the chains where the block explorer has an API key, and then you will need to input your API key. For example, if you are trying to verify on an L2 chain like Optimism, you’ll need to create an account on https://optimistic.etherscan.io/ and then get that site’s API key. Not all of the block explorers made by Etherscan have API keys. The Remix Contract Verification — Etherscan plugin only works where you can log in to that block explorer to get an API key. Once the API key is input, the plugin’s homepage is opened for verification. The network is selected in Deploy & Run, and in your browser’s wallet (if you’re using one). You will need to have compiled the contract, and of course, you will also need to have deployed the contract. VERIFYING CONTRACTS WITH CONSTRUCTOR ARGUMENTS As of this release, you no longer need to input the encoded constructor arguments. You can input them just like you did when you deployed the contract. VERIFYING A PROXY CONTRACT Upgradeable contracts using the UUPS design pattern can now be verified in the Etherscan plugin. Before verifying a proxy contract, the implementation contract must already be verified. THE IMPLEMENTATION CONTRACT PART If you haven’t already verified the implementation contract, don’t check the proxy box when verifying the implementation. Just verify the implementation contract like a standard contract. Then, and only then should you continue to verify the proxy contract. THE PROXY CONTRACT PART To verify the proxy (just after you’ve verified the implementation): Click the It’s a proxy contract address checkbox. Copy the implementation contract’s address from the Contract Address box and paste it into the Expected Implementation Address box. Then, paste the proxy contract address into the Contract Address box and click Verify. GENERATE VERIFICATION SCRIPTS Clicking the Generate Verification Scripts button will create a folder named etherscan in the Workspace’s scripts folder that contains .ts files for verifying and returning the receipt status. UPDATE TO THE WALLETCONNECT PLUGIN As of 28 June 23, DApps and wallets that use WalletConnect will need to use WalletConnect v2.0. The Remix WalletConnect plugin is ready for the upgrade. Keep in mind that not all mobile wallets will work when the upgrade has happened. Check for news about this on your mobile wallet’s docs, or here. THANK YOU REMIX SUMMERTIME USERS Please report any problems you find in Remix. And, as always, please send us any suggestions about 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 have migrated our community channels off Gitter and on to Discord. Although we still follow the discussions on Gitter (now through Matrix), we encourage you to move over to our Discord server. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.34.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 16 May REMIX RELEASE V0.33.0 Author: Rob Stupay Remix is dedicating this late Spring release to the lovers out there connecting their hearts and, uhh… wallets — or at least connecting their mobile wallets to Remix as well as telling each other the many ways they love each other, and then inputting grand totals into a function’s argument using scientific notation. You see, Remix is for lovers! BIG NEWS * Updates to the WalletConnect plugin * Scientific Notation comes to Deploy & Run — so stop counting those zeros!! * Etherscan verification plugin updates * Generate documentation with a right-click in the File Explorer WALLETCONNECT Approve transactions on your phone’s mobile wallet by using WalletConnect. In this release, we’ve refactored the plugin and have moved it into Remix’s codebase. WalletConnect is great for mimicking how your users will approve transactions in your dApp. Compile a file, then in Deploy & Run, at the bottom of the Environments select box, choose WalletConnect. WalletConnect will appear in the main panel in an Editor tab. Hit the Connect to a wallet button. Then scan the QR code with your mobile wallet and approve the connection to Remix. The network that your mobile wallet is connected to will display in the “badge” underneath the Environment section of Deploy & Run. Switching to a different network is done in the mobile wallet itself. The chain ID of the chain you are connected to will be shown in Deploy & Run. SCIENTIFIC NOTATION IN FUNCTION INPUTS Scientific notation can now be used for numbers passed as function arguments. This means that instead of inputting 12000000000000000000, you can input 12e18. Scientific notation will also work in an array or as a single input. For arrays the input looks like this: Thanks again for the suggestion, Paul! Keep ’em coming! ETHERSCAN UPDATES In this release, we’ve updated the Etherscan plugin. To verify a contract, compile it and then deploy to a public network. Activate the Etherscan plugin and input your Etherscan API key. Then choose the contract you want to verify and input the contract’s address. Then click Verify. If you are connected to the wrong network, change it in Deploy & Run. DOCUMENTATION GENERATOR IN THE FILE EXPLORER’S RIGHT-CLICK MENU Remix’s Documentation Generator is now integrated into the File Explorer’s right-click menu. Of course, to generate the documentation the contract needs NatSpec comments in it. To generate the documentation, right-click on a file in the File Explorer and choose the Generate Docs option from the menu. The documentation will be displayed in an Editor tab. The associated markdown file will be created in the docs folder. SOL2UML We’ve added a magnifying cursor to the UML viewer, and now the scroll wheel on the mouse controls zoom instead of position. Moving around the diagram can be done with the browser’s scroll bars. THANK YOU, THANK YOU, AND… Please report any problems you find in Remix. And, as always, please send us any suggestions about 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 have migrated our community channels off Gitter and on to Discord. Although we still follow the discussions on Gitter (now through Matrix), we encourage you to move over to our Discord server. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.33.0 was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 04 Apr REMIX IDE V0.32.0 RELEASE Author: Rob Stupay > “In the spring, at the end of the day, you should smell like dirt.” > — Margaret Atwood After going through Remix’s April release, you should smell like blockchain. BIG NEWS * Upload a folder to a Workspace * Github Actions can now include Forking * Free Functions have come to Remix * EthDoc creates MD files * Trust Wallet in Remix UPLOAD A FOLDER TO A WORKSPACE Suppose you have a folder full of files on your hard drive that you’d like to bring into Remix. Previously, you could have shared this folder with Remixd to connect it to Remix, but you would also have needed to run Remixd. Now, you can upload a folder directly to a Workspace. DOWNLOAD A WORKSPACE We have also added an option in the Workspace hamburger menu for downloading the current Workspace. NOT NEW TO THIS RELEASE BUT RELATED: * To download all of your current Workspaces, choose the Backup option. * To download a file or a folder in a Workspace, right-click on its name, and choose the Download option from the context menu. UNIT TEST WITH A GITHUB ACTION ON A FORKED BLOCKCHAIN In the Workspace hamburger menu, previously there were three options for adding GitHub actions: Solidity Unit Testing, Mocha Chai Unit Testing, and Slither Analysis. In release v0.31.0, we brought forked chains to Remix. In this release, we bring the forking to GitHub actions. You can choose a chain to fork, as well as the block number and the EVM version. Once you have committed and pushed to GitHub from Remix, you are set! For more info about GitHub actions in Remix, see our blog post on the subject. FREE FUNCTIONS IN REMIX Free functions are functions that run outside of a contract. > Mainly useful when prototyping, but it also makes sharing code easier than > with libraries. > — Paul Razvan Berg You can now run free functions by right-clicking on the function and you’ll see the Run the free function option. Thanks for the suggestion Paul! Keep your suggestions coming! GENERATE UML — DOWNLOAD OPTION We’ve been updating the Generate UML option. You can now download a PDF or a PNG file of your UML diagram. To generate a UML diagram, right-click on a .sol file, and in the context menu, select the Generate UML option. The diagram will come up in an Editor tab called Solidity UML Generator. DOWNLOAD COMPILATION DETAILS The button to view compilation details is visible in the Solidity Compiler after a file has been successfully compiled. Now these details can be downloaded. TRUST WALLET IN REMIX There is an expanding list of Browser Wallets. These wallets are installed as browser extensions. It is best practice to only have one these activated in your browser for use with Remix. Pick the wallet of your choice. Switch wallets in the browser settings for extensions. DEFAULT WORKSPACE NAMES We’ve renamed the default workspace to Basic and we have changed the number after the name to a simple incremented integer. You can always rename a Workspace to whatever your heart fancies. DOCUMENTATION GENERATOR We are in the process of updating DocGen, the plugin that creates documentation out of NatSpec comments. This plugin is activated in the Plugin Manager. In a future release, it will be accessed by right-clicking on a file in the File Explorer, so stay tuned. The update in this release is that DocGen now creates a markdown file and places the .md file in the docs folder. THANK YOU WONDROUS USERS Please report any problems you find in Remix. And as always, please send 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 have migrated our community channels off Gitter and on to Discord. Although we still follow the discussions on Gitter (now through Matrix), we encourage you to move over to our Discord server. Or, send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix IDE v0.32.0 Release was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... 01 Mar REMIX RELEASE V0.31.0 — A FORKING GOOD TIME Author: Rob Stupay REMIX RELEASE V0.31.0 — A FORKING GOOD TIME > When you come to a fork in the road, take it. > - Yogi Berra THE BIG NEWS * Chain Forking! Fork a chain and play with it on the Remix VM. Works for Ethereum Mainnet, testnets, or the chain of your choice, all at the block number of your choice. * New Proxy Contract Upgrade checks * Download files and folders with a right-click * Zooming on UML diagrams * New version of Remixd v0.6.12 — DOWNLOAD IT NOW! npm install -g @remix-project/remixd FORKING You can now fork chains so that you can play with them on the Remix VM. This is a great technique if you want to develop a contract that interacts with deployed contracts on Mainnet. By forking Mainnet to the Remix VM local chain, you can experiment more effectively in a local environment with test ETH. To fork, go to the Environment select box of the Deploy & Run module. You’ll see the four fork choices. When you select Mainnet, Sepolia, or Goerli fork, the chosen chain will load into Remix. It may take some time to load, depending on your connection speed. Once loaded, you’ll see ten accounts loaded with 100ETH each. Careful though. If you refresh the browser, you’ll lose the forked chain. CUSTOM FORK — REMIX VM When you choose the Custom fork a modal will pop up. You can get the Node URL from chainlist.org. If the chain does not load, you may need to choose a different RPC server. You will also need to choose an EVM version appropriate to the block number. So if you choose a very old block number, the EVM with the Merge “flavor” won’t work because this version of the EVM came out later. NEW CHECKS FOR PROXY CONTRACT UPGRADES UPDATES TO HANDLING PROXY CONTRACTS Remix has a UI for dealing with upgradeable contracts using the UUPS design pattern. For more info about using Proxy contracts on Remix see our docs. As of this release, Remix saves a list of the previously deployed proxy contracts. As you can see above, Remix displays previously deployed contracts that use this pattern. On rollover, the tooltip will show the date of the deployment. This information is deployed in the .deploys folder in the File Explorer. Remix saves the storage layout and compiler solc inputs of all UUPS deployments. NEW CHECKS Now that the previously deployed upgradeable contracts are being saved, Remix can make some tests to ensure that you are upgrading the right contract. Remix checks the .deploys folder, and if it finds the contract, a comparison is made with the upgrade. If there is an incompatibility, a warning modal containing a list of the issues will pop up before the new contract deploys: If the previous contract is not in the .deploys folder, Remix cannot make the comparison, so this warning will pop up: This warning simply means that Remix cannot make the comparison because the previous contract is not in the .deploys folder. It might be a perfectly good upgrade. Indeed, everyone who has made upgradeable contract deployments before this release will get this warning. Lastly, we have a simple check that makes sure a contract’s address is valid. If it isn’t, you’ll get this warning: MORE UPDATES TO THE ENVIRONMENTS SELECT BOX The Environments select box has been updated and the code has been refactored. FILE EXPLORER UPDATES BACKUP A FILE OR FOLDER BY RIGHT-CLICKING ON IT Now when you right-click on the name of a file or a folder (but not the icon) you’ll get this popup menu: Selecting Backup will download the file or folder to your computer. AN UPDATE TO GENERATE UML IN THE FE RIGHT-CLICK MENU In this release, you can now zoom in, move around the diagram, and zoom out. Click the reset button to restore the original zoom level. More updates are coming, so watch this space! WARNING WHEN UPDATING A FILE OUTSIDE OF REMIX As I hope you all know, Remixd connects a folder on your computer to Remix and that you can connect to it by going to -connect to localhost- in the Workspaces select box in the File Explorer. And, if you didn’t know that, now you do. To find out more, see the docs. But before I get to the new update, please download the latest version of Remixd v0.6.12: npm install -g @remix-project/remixd Now when Remixd is running (so a folder on your hard drive is connected with Remix) and when you update a file in this shared folder from a tool outside of Remix, a warning will pop up: SOL COMPILER The default Solidity Compiler is now v0.8.18. In the Compiler’s Advanced Configurations section, we have also added the Paris EVM. FIXES Flattener is updated. Calculation of gas execution costs has also been fixed. And, in the FUNCTIONHASHES section of the Compilation Details modal, the function hashes are now displayed. THANKS YOU WONDROUS USERS Please report any problems you find in Remix. Also, as always, please send 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 are migrating our community channels off Gitter and on to Discord. Although we still follow the discussions on Gitter (now through Matrix), we encourage you to move over to our Discord server. Or send us an email at remix@ethereum.org! -------------------------------------------------------------------------------- Remix Release v0.31.0 — a Forking Good Time was originally published in Remix Project on Medium, where people are continuing the conversation by highlighting and responding to this story. More... Clear console 0 listen on network - Welcome to Remix 0.20.0-dev - 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 (run remix.help() for more info) > Close WELCOME TO REMIX IDE × Click to launch the Home tab that contains links, tips, and shortcuts.. * * * BackNext