 welcome welcome and get ready for our new features we're gonna be whipping through about a quarter of a million slides new features are everywhere and we'll be going through all these sections like the file explorer you can now clone and get repo in the file explorer right now there's this little icon we added a new little icon right over there you click that and but soon that it's gonna turn into a little hamburger icon and you click the hamburger icon and you can clone if you click the clone and then you get this modal to come up to ask you for the address of the mode of the repo and then it comes in as its own workspace so you can bring lots of code into remakes really fast or easily now and then when you click the workspace pull down you get the git icon on all the workspaces with a git repository associated with them and you can manage to get repo in the git of course you could before but maybe actually have any of you used the git before there's one and it's it's important yeah you need to be able to push Paul and do all your git commands so you click the it's a plugin and you load up the the git plugin it stands for decentralized git click that and then over here if behind the chair or maybe on your screen you'll see the in it push Paul all the normal git commands and oh it's over there and then you're good to go and then we've got new templates in the workspace if you add click the new template a new workspace button and then you get oh it's over there you can get a create new workspace I like it looking at this and then what happens you can choose a template oh yeah but first you can initialize a repo any repo you want to become a git repo so now you click the default or that pull down menu and you get all the different workspace templates and now they're all the open zeppelin templates or some point open zeppelin templates and 0x project and if you click one of the open zeppelin templates you get you get some of the features so you can you click one of those and you can add a new import to your base coin contract and now you can drag and drop in the file explorer which means that your workspaces won't be so messy especially when you didn't open the right folder when you're creating a new file and is everyone here used remix D it's an important little thing yeah and because it's important because remix is not like a Google doc we get emails pretty often like I lost my files and remix when the browser crashed so you just have to know where your files are saved they're saved in browser store in the index DB and that's in the browser and the browser is feeble you know so if you want to save it to your hard drive you can use remix D to share a folder on your hard drive with remix or you can push it to you know some other external get repo if you want and now as a result we made the get the remix D command a lot easier instead of a lot of flags you just go into the directory you want to share in your terminal and just type D remix D of course you do have to download it first and it's a npm package so but it's simple and now you can load slither for all you static analyzers there out there I just want load slither locally and we've made some editor updates and for the master of editor updates I give you Philip thank you Rob for those who have been here at the what do I the green button the big green button for those who have been here at the previous session you you know how challenging it is to to build a good code editor and as we are using the same editor as the VS as VS code does we've been able to make it do some stuff that we expect the editor in VS code to do and the challenges that we had are basically the same that the nice people from hardhat have when they are doing code parsing so we've been trying to solve this problem first of all in order to use these features you have to turn them on because by default we turn them off because you know some people might not like it or it might be all too sudden but basically what we have is autocomplete and autocomplete is a very complicated beast as we know because when you're typing you want stuff to happen so we have designed some custom parsers we use three in total to parse the code while you're typing so what does it complete it completes globals the usual solidity stuff it completes dot it does dot completions on globals from solidity it also completes anything that you have inherited from other contracts and anything that's available to the specific location where you're typing so that all of that also takes into account visibility of certain functions or variables that are being imported through the imports basically it also other completes functions from other contracts so that when you type prove for example it will pre fill the variables for you in the editor it's still very limited but it's getting better as we go along it's an experimental feature it has some stuff to it but we try to make it fall taller tolerance so that when you're typing and you're completely messing up it tries to make sense of what's there and I think we've done a pretty good job it's for you to try out and to see if it actually is it is what I'm saying it is the dot completions are a thing that I think is specifically useful for when you're doing complicated stuff with contracts that you import here we have also a nice little feature that we build in order to complete possible imports when you type import basically we have some Uniswap and open Zeppelin preloaded so you can easily find and search files that you're looking for if you're looking for some kind of interface for an ERC 115 five you just type in you just go to the open Zeppelin slash and you type in 1155 and it will just show up in the list it's easy to import it at that way you don't have to copy paste it anymore from other locations and the imports will be available the imported classes or import contracts sorry will be available for you as other complete objects when you try to extend the contract and anything else so these things are all being taken into the editor and into the editor these are things that we believe are important features for people to develop quickly and that any editor should actually have we also include gas estimates gas estimates are simply returned by the compiler right and we display them on the places where the compiler says that there is an estimate sometimes there is not an estimate if you don't see the estimates that means that the compiler hasn't been can't make sense of what you're doing and then then some suddenly things stop right so you see the gas here if you hover over it you see some more information because the gas is more complicated pieces we go along then we have just as in VS code we have jumped to definition and references we also have the peak function so that when you click here it will just open up this editor within the editor and you can just jump around through all the references and definitions that you that thing can find we try here also to be fault tolerant if your file is messed up and you have errors in it it will still be able to find the the functions and the definitions it will all you show you also show you the net spec comments that are included into the files that you have imported so let me see if I can actually see oh yeah and then we have we try to make something that when you actually type and you make an error you see this this quickly lines you get warnings and errors and what's the other thing I forgot and it also colors the files just like in VS code so when you have an error in a file you will see it turn red also on top you will see turn red if you've made an error in an imported file which is important you make an error you forget to forget something or something it will actually put this quickly line underneath the imported file and also it will just show you where the error is in the file explorer so you can easily say okay this imported file has an error I'll just go there and see what's going on the hovers are and other features that we do so this hover feature shows you the errors that you that the compiler says that you've made and as I said before it just shows you the definition and the location of the stuff and also the comments if there are any it will show them into the hover then we have a nice play button and this play button has several things that it does for salinity files if it just compile on the files and for typescript or JavaScript files it will just run the script that's the play buttons nifty new little feature that we made and then we have code formatting code formatting is something that I use all the time because you know I'm lazy and I'm not a Python guy so yeah I I like to format a lot so I did we did it and we will build some customization to it so you can actually customize the formatting to your own specifications or likings but for now it does some basic formatting on your JavaScript and on your TypeScript and on Solidity so try it out and see what it does and see if you like it and if it's it's it becomes a big match just just tell us and we'll fix it here in the opening screen when you close all the tabs in the remix it will just show you this screen and it contains the shortcuts that you can use in the editor so the important part to remember from this from the editors is to turn on all the features in the settings so that you can actually use them if there is something that doesn't work just tell us because we need to learn from the experience from people who actually use Solidity a lot and so that's important the next part is proxy contracts and I want to introduce you to David DeSue and he will talk about it thank you okay hi I'm David and I'll be talking about remix ID support for proxy contract remix ID allows you to be able to deploy upgrades to your smart contract we just introduced this I think a few months ago about a month to a month ago and was purely inspired by continuity of your project I believe with all at some point deployed some contract that we might feel like making some changes to and then we couldn't do that because there was no provision for upgrades so we have that and we the remix ID uses the open zipline ERC 1967 proxy contracts to help do this now the open zipline supports three types of proxy upgrades I think the U UPS the transparent and also the beacon for us for now on remix ID we support you using U UPS pattern for contracts upgrade yeah okay and then it requires you having the U UPS upgradable the soul in order for it to work this feature can be easily be tested if you assess the open open zipline wizard you can be able to customize how you want your contract and then you select the U UPS upgradable and open in remix if you have that you compile you should be able to have this we also have templates I believe Rob was talking about templates towards the beginning you click creates workspace you can select and customize what you want by checking also the proxy so once you have your contracts in the ID compiled you should be able to have these options deploy with proxy or break it proxy so basically remix ID does in the background the deployment of the proxy contract so we basically have a compiled bytecode of the ERC 1967 contract which we deploy as your proxy and then we now have your implementation contracts deployed on top so basically when you're interacting with this feature you'll be prompted with a model instructing you that the two transactions will occur and then using the JS VM it's super fast so you just see it immediately after the first deployment the first the first deployment and then the second yeah but then if you're using say metamarchs and deploying to mainnet or one of the test nest me to be a bit slower because one of the transactions has to complete that's the proxy deployment first before the implementation oh yeah so after deployment you have this interface displayed the first here is the deployment of the implementation contract and then this is the proxy now these two instances have the same UI but then you get to interact with the proxy you get to interact with this UI and not that and this is because the whole point of having an upgradable contract is that you don't want to interact with your implementation you want to interact with the proxy but then we still display this so that you don't get confused and feel like something is up but it's actually just there so that you interact with this and then this makes low-level delegates calls to your actual implementation contract okay and then we also have the upgrade so now for the upgrade you need to provide your proxy address if you use the mixed ID to deploy your proxy originally then you can check this box to be able to use the last address yeah so really smooth and moving on in the future we plan on having a list of previously deployed proxy addresses so that you can be able to pick from and not just the last deployed address yeah yeah I think I've talked about this it makes a delegate call I guess to your implementation contracts okay also talking about workflows remix ID also has a gate of action that allows you to be able to run your solidity test on your github workflows so it can be integrated as part of your build process and you can be able to have it run the solidity unit testing every single time there's a push or depending on how you configure it to be we also plan to have the static analyzer also added as github actions so that you can be able to have it on your github projects we also are currently working on having you run a JavaScript test with Mocha and Chai also as github actions so yeah okay oh yeah yeah this is a sample this is a sample workflow that can be used yeah I guess it should be nice to check it out on the github marketplace moving forward I'll be handing over to Rob to round things up okay a few more things to go over we got a new workflows for a quickly working out problems so setting in the state of a contract is kind of can get kind of hairy because you got a maybe have to deploy a bunch of contracts got to go in and hit a bunch of functions and you got to remember what you do and each time you develop it can be you got to remember what the process is so you can make a script that does that for you and then let the script run after you do a little bit of coding and now we have this button to push so you and you click that will compile the contract and then run the script and you connect the script and the contract with some NAT spec comments there's an example in the default one underscore storage to see how to connect the the NAT spec comment to connect the script and the smart contract you don't have to hit compile and run all the time you could just hit it when you want to so just compile compile compile and then when you need to run it or I guess you probably could do it all the time too we got a bunch of interoperability updates you can compile for a hardhat project when you share the folder you're with remix D to the hardhat project to your hardhat project and you can sync now so if you want to use remix or truffle or I mean if you want to use a hardhat truffle or foundry and deploy with and you can then you can deploy with remix so once you share the folder and then you compile a file in one of those other frameworks then you can go to the deploy and run hit the refresh button like that one was compiled by a hardhat and then we took the same file and compiled it remix and it comes up with compiled by remix yeah then you can deploy and run it we got hard foundry remappings when you share the folder with a foundry project and here's 27 seconds so we can have some time for questions of some quick grab bag of stuff we got the advanced settings in the solidity compiler so if you click the button over here you can see an example of jason file that will run all your compiler settings so you don't have to do it by that in deploy and run there's a bunch of new providers environments and and now for beginners it's easier to see which one is the injected web 3 the injected provider and it will say the name of the injected provider also now like they're in the environment section the top link goes to chain list org so you can find them the spec of the chain you want to deploy to and when you're looking at one of the L2s it will go to a bridge to get the funds for that the bugger got wider there's a console log just like hard hat and to get the to the to the documentation you got to click that little care it opens and then you can click the book to get to the documentation and also the little green checkmark means that remix is owner of this code we have a bike a little bit updated viper so you can go to the viper plug and click that and it'll download the viper lang repo and there's a transaction recorder which probably none of you have ever used but you should check it out it's in the middle of the deploy and runs and the browse and grab if you take if you go to a verified contract and ether scan you just change out the ether scan for remix and it'll open it up in the editor and now questions it's a question about I see no there's there's already some integration between remix and swarm I'm just wondering if you have any thoughts on the future of where that might go I guess so we're in open conversation with them there's a right now we're adding the postage stamp so you could publish to swarm the next steps I'm not entirely clear about but you know we like to that will be going on continuing not dropping hey just a quick question are those features already available or do we have to wait no those are all available awesome thanks hi it's a simple question it's a way to enable being more because right now I using a browser plugin but I hope that you can support the being more online mobile being mode they being edited editor so yeah we spent some time to improve the editor like the monaco editor and then I think it's some request that we had last year and I mean we are looking at that it's not like something we would prioritize for now except if we would if we would push it push for it but yeah we could do it push for it and we would do it for sure thanks to thank you again all three of you thank you thank you so much