New AEstudio - Editor for Sophia Smart Contracts on the Web

Swoop swoop - it’s time for for good news again !
Some of you noticed it already, but I’ll announce it here anyways:

You can use AE Studio on the Aeternity Mainnet with the Superhero Wallet now !

  • How ?
    As promised ever since, things are very simple again:
  1. Install Superhero Wallet if you don’t have it (a plugin link is shown for your respective browser)
  2. Open AE Studio, it detects the wallet automatically.
  3. Flip the switch to mainnet - you’re done ! AE Studio does the work from here on.
  • Why is that important?
    It’s the easiest and safest way to deploy and interact with contracts on the mainnet. You can deploy a token, for example, without any technical knowledge. Need a proof ?

Situation then: Create a (node)js project, read through documentations, carefully put together a script with the SDK of your choice, pass it the right config parameters, paste your contract and private keys, make sure they don’t leak into some commit, run everything and hope you didn’t make any mistakes of which there will be plenty all the time.

Situation now: Copy-Paste a token contract, enter your parameters into the UI(!) of AE studio (max total amount, etc…), click deploy and use your funds safely stored in Superhero Wallet to pay for the transaction.

You don’t have to be a nerd no more to use the mainnet guys, no excuse not to build on AE anymore now :wink: ! Thank s a lot for the great advice/support @philipp.chain and @bruteforce.chain, and thanks to the community for the awesome feedback we got for this and AE Studio in general during the last Superhero League:


cc @YaniUnchained where should we put it by the way, aestudio.aepps.com ? :slight_smile: So proud to be building this, this feedback is really rewarding ! :partying_face::grinning:

11 Likes

Hello @nikitafuchs.chain, the migrate from FireEditor to AEstuido alongside the recent update is really awesome. There seems to be an issue while connecting to GitHub on https://studio.aepps.com. I guess the callback URL is wrong or something.

3 Likes

Hey, thanks for pointing out, I will fix it tomorrow !

2 Likes

It’s fixed !

6 Likes

Fantastic job Nikita!

3 Likes

After all the updates, we have a contribution from @VitalJeevanjot : Now you can quickly copy your active address to your clipboard :slight_smile: (button on the right and dropdown entry for smaller displays / responsive design)

2 Likes

@nikitafuchs.chain
AEStudio Currently there is only web version, but eth developer’s development tools have native development tools for MAC or Windown system. Can we upgrade it? Native development is a much better experience.

1 Like

Hey, thanks for your opinion ! Why would you prefer something local instead of in-browser ?

4 Likes

just to give some outlook and opinions from my side here:

  • we have currently AEproject for local development which uses docker under the hood and allows contract testing using javascript (should work for mac, linux & windows as far as I know)
    • generally speaking for windows it is always recommended to run e.g. Ubuntu with WSL (Windows Subsystem Linux)
  • we still have the problem that even the local node which needs to run for executing tests relies on mining and this leads to extremely long delays in tests

we have some thoughts about how to maybe get rid of AEproject or at least provide an alternative.

there will probably be a simple template-repo introduced which provides all instructions needed to get started quickly without relying on AEproject at all. it will probably also use the standard aesophia-cli for compiling the contracts locally. but it will probably still have the dependency to docker because it just simplifies certain things

4 Likes

https://www.obsidians.io/

Look at this
If it’s a MAC or Windows installation. It will automatically associate and download related resources using Docker. The user experience is very good. If AEStudio is also upgraded in this way, I think it is better than ETH in combining development tools with functional programming language. Now, AEStudio is a very useful tool for AE development contract, but there is still a certain gap compared with ETH.

4 Likes

it’s true that there is lot’s of room for improvements on that side. but we need to “fix” or let’s better say improve all the basics first before we tackle this (IMO) bigger topic.

but it’s always good to hear your opinions about the tooling in general. we will get more active about that in the near future and also have open discussions for that kind of things.

to be clear:

  • if possible everybody would want to see the thing you mentioned above immediately!
  • we just need to get there step by step
2 Likes

Yes, some public chains copy ETH codes. AE is self-developed. So the cycle is very long, looking forward to exceed ETH one day :+1:t2:

3 Likes

Exactly. Still a long way to go. Also depends on organic growth and community builders out there.

Other chains just re-use the EVM and all the tooling around that. That’s not that difficult. And you know what? Just open Metamask, put in custom chain-data and that’s it xD

We know that Sophia is better than Solidity and we know that FATEVM is by far better than the EVM. But the tooling currently lacks and this needs to be improved, sure. But this needs to be done step by step. We cannot risk a big step without going through small steps having nothing in the end.

For now it’s quite “ok” having AEstudio and AEproject. You can at least achieve almost anything if you really want to.

4 Likes

I agree, technologically AE is way more advanced than Ethereum for a long time already.

From what I see there, their approaches are everything else than light weight, but maybe that comes with certain features you might feel missing right now in AE / AEstudio ? Regardless of browser or local, is there anything you feel currently missing in AEstudio that you would really like to see , @Baixin.chain ?

3 Likes

Now AEStudio is very good. It can meet the development function of smart contract on AE. However, some user experiences can be enhanced, such as the introduction of multiple files to contracts, or the ability to debug contracts. We can slowly add these features to make AEStudio even better

3 Likes

Indeed. For debugging: Currently compiled contracts are heavily optimised so they can’t be debugged like it’s known in solidity. That would be a thing for the todo list, for many layers though, as running unoptimized contracts would blow gas limits right away. But as the sandbox/dev mode is worked on soon, things could be realised in there more easily.

For the inheritance: Currently the inheritance is taken care of in a way that i don’t really favour to be honest, and including it in the editor will require heavy refactoring - but that’s okay, it can be done. Thanks for the suggestion, let me tackle this.

4 Likes

Update: The accumulated tech debt is being taken care of. In order to update the the Editor to the newest SDK and proceed with necessary developer features, the editor itself was updated to angular 16. The same is being done with necessary components like the VScode library and the semanticUI library. The latter requires manual work by me, as it is not maintained by the original author and other alternatives just do not work. This is almost done. In the next release, contract sharing will be disabled for now, until we provide a suitable API, ideally via AEscan. Logging in will be disabled for now, as it’s not necessary. A switch to another implementation of the VScode library might eventually be necessary, too, as the original package isn’t maintained anymore either, but might keep working anyway.

Further down the line comes the implementation of the debugger and the devmode.

After the tech debt is taken care of in a few days the long awaited updates will be rolled out. Stay tuned.

2 Likes

Update: I upgraded the UI Library to the latest version of Angular as the last missing blocking piece to completing the Upgrade of aestsudio to Angular 16. The codebase of aestudio is now upgraded to aestudio 16, too. Other blocking dependencies could be replaced with forks which have been upgraded to more recent angular versions by other people, fortunately. After this maintenance is done, we can finally easily update the SDK and now and work on the implementation of our other devtools. :partying_face:

4 Likes

Hello, updates !

Aestudio is now fully migrated to the very latest SDK version, the last one was very outdated. This means that a big part of the editor code was refactored in its way how it interacts with the SDK and which functions it calls how. Also, some code was cleaned up and a bit more typescript was introduced. A major cleanup has to be done some time soon still, the focus is on the development of features though.

New feature I did not mention yet: You may have seen that the console has a tab called REPL. It allows you to execute sophia code in FATE VM, the virtual machine that powers aeternity. That includes running and debugging your contracts. I’ve implemented a UI for this that closely resembles the experience of a terminal, you can also use your up and down arrow keys to scroll in your command history. For now, the interaction with the REPL takes place though command line, you can find information for that In the REPL/Debugger Thread. Note: It’s very much work in progress right now, but the next step will be having a simple UI for all of this.

Most important: AEstudio is now working with the latest Sophia version so you have all the latest feature at your disposal.

Currently work in progress is a visual debugger like you know from your favourite IDE, with breakpoints and everything. Much work on the UI is being done for that currently, which is way more tricky than I though it would be. The issue is the very same that is quoted in the bottom right corner of Aestudio: Complicated is easy, but simple is hard. We need tools that everyone can use.

EDIT: Here is a sneak-peek of a tiny part of what is to come !
breakpoints

3 Likes

Updates !

Due to the recent switch to a new aarm64 mac I took the time to do some homework and assure our components are actually properly running on modern day developer machines. Turned out we had to catch up here and there. This small detour was necessary to assure the proper functioning of state channels, as I’ve put some focus on this due to ongoing work on the repl/debugger and the devmode which the overall progress is depending on. We’re putting effort into having fully featured and simple to use components for building great apps on aeternity, putting one brick into place after the other. As many components depend on each other, improvements can only be done asynchronically some times, but the progress is sustainable: As we saw some recent activity in state channel usage, major fixes for the middleware/aescan were put in place, too, for a more stable suport of these types of transactions.
For family reasons, the month of December was a bit shorter for me personally and a few days my son will be born, but nevertheless I’m expecting to release the debugger for aestudio in january and move on to the devmode in February.

1 Like