[Update No. 2 October] Fire Editor Release: The easy to use Web-IDE for sophia!

Nikita, please see Fire Editor / Lexon

Thanks!

Hello @nikitafuchs.chain, is it planned for fire editor to allow dry-running stateful functions, in order to receive better error messages? (e.g Non descriptive error returned from contract call)

If contract call transactions abort it could also automatically be dry-runned in order to show a nice error message to the user.

5 Likes

PROPOSAL [draft]

Note: It’s “draft” because I first would like to hear other people’s opinion here on whether I might have forgotten something important. After a feedback period, I will eventually add/remove/change things and change the state to final.
… … … … … … … … … … … … … … … … … … … … …

People familiar with programming know it’s essential to have an IDE that allows to quickly test and debug functionalities and issues that are specific to a language and/or system you are building on. This editor allows to quickly write error-free contracts, deploy, interact with and debug them. Features like error highlighting, individually generated GUI for every contratedact and console for transaction details are just a few features to mention here. You can even have a boilerplate-dAepp generated, which deploys your contract and calls the function of your choice (thereby showing how to build on aeternity without reading long docs). Around 98,9% of the codebase was written by me, honorable mentions go to @milenradkov.chain for the syntax highlighting.

As now every AE project requires explicit permission to spend work on (just as an info to non-AE people in here), I was asked to put together a list of To-Dos for a release I would consider a 1.0. Here are the things I would like to propose:

  • Finalizing the already almost done user registration feature to provide everyone his own dummy testnet accounts (at least as long as we / because we don’t have a sandbox client yet like Cardano or Ethereum)
  • That allows me to implement the transaction parameters for value, gas and gas price (not done now because people would empty the public accounts then - still possible though currently if anyone really wants though)
  • Supporting all SDKs in the code generator, so we can have them finally easily accessible to the user vs. the current un-unified documentations for all SDKs
  • Type Breakdown - Example: If a contract requires input of the datatype “tip”, it’s not easily clear that the input must be, say, an object consisting of an address, a name and an amoun. Currently the editor would show as a hint the tip type, afterwards it would tell you what is actually expected: {"recipient": address, "name": string, "amount": int } and you know what to do.
  • Fixing two known issues: 1. In case of an error, not always the “best plausible” cause of the error is highlighted, 2. Some data types require to be explicitly wrapped in quotation marks, for no reasonable reason. (thanks @martingrigorov.chain for finding this).
  • Adding Waellet support, so people can use the Editor for Mainnet operations (purposefully not supported in status quo for obvious reasons), or whatever other (private testing) network, and with their own accounts. This allows for easy interacting with and debugging of live production daepps. I did it like this a ton of times during the old Ethereum days.
  • @philipp.chain rightfully asked about implementing the feature to dry-run contract calls, one of our coolest features in aeternity.

For this, the amount of 15 working days will suit.

Additionally: As I put more focus on the functionality, the UI can look / behave unwieldy every here and there. As I talked this over with @keno.chain already and gave him a brief overview on the code structure, I would like to propose that he writes a proposal on polishing the UI’s behaviour and make it state of the art.

Can everyone give a quick feedback on whether this Editor makes building on aeternity easier for you and which features you would like to see ?

AND ALSO: We’re looking for a new name! :slight_smile: Please suggest ideas !

AEditor is unfortunately taken.

10 Likes

as I already mentioned in another thread I would like to see sth. like https://studio.ethereum.org/ to enable contraect development within the browser and I think you are on the right way and a subset of those features are already present.

more links:

what about AEstudio as name then?

what is the current state of the editor regarding custom types created within sophia? what if such type is needed as param in the init-method / constructor?

in my experience it was (and probably still is) often horrible to figure out in what presentation parameters need to be provided to the smart contract methods. it is often a “try and error” path which definitely isn’t a great developer experience.

if however possible I would like to see some kind of typescript integration so that contraect-instances which are used in the frontend application are typed so that the developer knows the format he needs to provide to all methods.

that would be really cool :slight_smile:

5 Likes

I’m usually quite satisfied by using VIM but the run-ins I’ve had with the Fire Editor has been nice!

From the things I’ve seen improving the error-reporting even further and perhaps also giving more hints, etc. would be helpful. I also agree with Philipp that it would be very beneficial to be able to dry-run things, not the least to get run-time errors from FATE while testing.

2 Likes

Unfortunately I am very busy with other projects within aeternity and can therefore not support you with the development effort in the next couple weeks. During this time I am happy to assist you with questions regarding ui/ux topics.

1 Like

@nikitafuchs.chain few things I was missing in trying to use the fire editor.

  • choose if I want to dry run or transaction run, sometimes you want to transaction call a non stateful entrypoint, e.g. with remote contract calls
  • attach amount to calls
2 Likes

Looks great @nikitafuchs.chain !

For me most the important feature would be the ability to attach an amount to calls, like philipp said.

Thanks for this nice editor. :+1:‎:pray:

2 Likes

What does the old contracts editor have that the fire editor is missing right now? Is this the “only” must have thing?

I agree with @marc0olo that the long term goal must be similar to the ethereum studio and I like the name too. Playground was also a good name.

A preview for then frontend, like in studio, is really great and helpful.

I think that the only feature from the contracts editor, that’s missing. Apart from a final web address where people can find this editor.

I like AEstudio too.

I like “AEstudio”, too, but we’ll have a hard time pushing it to the top on google I guess. I just tried to translate dozens of words into swedish, but everything that comes out sounds either kind of odd when pronounced in english, or requires crazy characters which nobody has on its keyboard. :thinking:

aeIDE
Would be nice to have code completion/documentation and formatter.

Anything actually that will help you write the code.

As a developer who comes from c syntax languages, it is hard for me to understand how to achieve simple things in sophia.

Every base type and methods on them should have documentation with examples that pop up on some shortcut. that would be awesome!

1 Like

Hello @nikitafuchs.chain, thank you for this huge contribution. I think this editor does an excellent work facilitating the development and debugging of Sophia Contracts, also the features that are planned will make it a powerful and smart tool. What to you think about this name: SmartAEditor?

I have deployed the FireEditor locally and I can see that you have planned to allow the user select/add more providers (for now is pointing to the testnet and you mentioned to add Waellet support for mainnet operations in the future). What do you think about including the local network configuration for developers who wants to interact with the aeproject node initially before deploying changes to testnet or mainnet? This would give nice support to the development lifecycle and CI workflow for bigger projects. It also could bring better integration with the functionalities of AEproject in the future.

My best regards

3 Likes

Hello @nikitafuchs.chain!

First FireEditor is an amazing Web-IDE with great features. We at #devstudyjaem decide to make use of the FireEditor for our training sessions. We love using this online IDE but the issue now is we make use of the Chain.spend function and there is no provision for that yet on the Editor.

Please when will this feature come in as we need it as soon as possible.

Regards,
ækiti team.

2 Likes

Wow, the fire editor is cool nice syntax highlighting and completion and has made development with sophia interesting

2 Likes

Swoop swoop, time for another update finally !

  • A new UI component allows you to set Value , Gas Amount and Gas Price for your transactions.
  • If you are not registered/logged in, a reminder asks you to do so (so people won"t empty the public test accounts)
  • Value can be set in any of our official aeternity units
  • Gas and Gas Price are set in units and aettos and can be toggled either between a manual set value to having the SDK decide a good value automatically (default).

Most importantly (This is a thing that annoyed me endless hours in the old Ethereum days!):

When a function is NOT payable and you have some value set, a warning sign appears next to the function’s call button explaining you what’s wrong (read: why the transaction would fail) and preventing you from causing a transaction error. This cumulatively took me so many hours of debugging back then, when some contract function unexpectedly failed because you forgot to set the damn Value field correctly (zero or non-zero).

Happy coding !

7 Likes

Alright, it was about time: Look-and-feel update on the side of the visible part of things !

The tabs now feel and behave like one would expect from a professional IDE (imho, open for feedback + bug reports!) The rebranding is straight-forward, with only the icon reminding of the past codename :wink: Thinks flow a little sleeker now I think. Except: Yes I know, the initial loading of every new release into your browser cache takes some time, this appIication is an iceberg one sees only the tip of. I will 1. put a loader there and 2. give my best to reduce the code size soon.

Next updates will be really cool techy stuff again, stay tuned.

3 Likes

cool!

nice to see this moving again.

quick search for “aestudio” gave more than 8m results, which is much better than “fire editor” with over 900m results.

even better might be “AEcreator” with just 7k results. @Leah your opinion? how to call this editor and dev tool?

Hi @yani.chain - This is not a project I know much about. Happy to give branding input @nikitafuchs.chain if you want to have quick 5-10min call today or tom. EOB day is better for me.

1 Like

A post was split to a new topic: New AEstudio - Sophia Smart Contracts on the web