[HOT] Updates, community discussions & feature requests

Hi there,

this thread will from now on be used to provide you updates in the æcosystem around:

  • æpplications (Faucet, Governance, Token Migration, …)
  • Developer tools (SDKs, AEstudio, AEproject & other libraries)
  • Documentation, including developer tutorials & samples
  • Wallets

and all the general activities happening around all that stuff, including bounties!

We know that communication in that regards wasn’t good in the past months so I just decided to open this thread. It can be used from everyone to ask questions, start discussions and maybe even provide information about their self-developed tools or æpplications. The goal is to have liquid conversations with everybody who is interested in helping to improve the developer and user experience on æternity.

The next post will give you a brief overview about what activities have been started, finished and what can be expected in the upcoming weeks and months.

Note:

  • This thread is NOT intended to be used for discussing Hyperchains or other core development related things!
  • If there are overlaps in several topics in terms of that we need sth. to be improved/changed in the core protocol then we can of course discuss that here. But generally we should focus on everything else here :wink:

Marco

5 Likes

:star_and_crescent:︎* :cloud:︎. .✧

. 𝓖𝓞𝓞𝓓 𝓝𝓲𝓰𝓱𝓽 ✯☽ .

.:relaxed::teddy_bear: :sleeping_bed::notes:

1 Like

Update #1 (27.08.2021)

Recap Iris hardfork

As many that follow the project closely know we had some trouble around different tools when the Iris hardfork was introduced in June. It definitely wasn’t a smooth process, everybody is aware of that and we will make sure that this kind of trouble will never happen again. There is nothing more to tell you about this and we better forget that as soon as possible and look into the future - which is hopefully bright :slight_smile:

Updating & improving examples & documentations

In this area I am mainly involved right now and there is still lot’s of room for improvement where I will continue to work on.

We mainly checked, tested and updated several documentations and examples. In case of the JavaScript SDK the new documentation can now be found here:

During testing we raised various issues in the JS-SDK. Additionally we want to provide examples how to make use of delegation signatures in smart contracts (this would basically allow to build an AENS marketplace if anybody is interested in that). Unfortunately there are still some enhancements in the SDK required to finally get this working like expected, see following Pull-Request:

Following examples have been updated:

awesome-aeternity has also been revived and updated, read more:

Since today you can also better find what you need to get started with Sophia development. The updated docs can be found here:

There is still work ongoing regarding documentation-hub and tutorials in general. I know it is not where we would like to see it but we constantly improve it. Next week I will shortly update the documentation-hub and link to all important places before I am finally able to introduce a useful submodule structure there that allows to explore anything you need via the documentation-hub. Follow the progress of this here:

Also, many of you for sure had problems navigating through the protocol docs (and they additionally need some update, too). We also worked on that side and the PR is about to be merged soon, see:

Ongoing development for the JS-SDK

We want to release v9.0.0 in the near future but still need and want to address some issues, see:

When v9.0.0 is finally released you will be able to play around with new new introduced tx-type PayingForTx which allows to easily perform meta-transactions and pay the tx-fee for transactions of other people. We are really excited about that feature as it provides lots of possibilities. Read more about that in the docs:

In addition to that we restarted the work on sth. we are really looking forward to see integrated in the javascript sdk:

This library allows to encode and decode Sophia calldata directly using javascript. When this library is integrated the SDK doesn’t rely on the (hosted) http compiler anymore for encoding/decoding the calldata.

@davidyuk is the rockstar and main contributor here and gets assistance by @bruteforce.chain and most recently also by @subhod-i.

Middleware backend

Some people might have noticed that @karol.chain stopped working on the middleware backend quite some time ago. Meanwhile we are happy to have @cryptodao21ae and @sborrazas as new contributors that constantly improve the software together with @wj2016 and @Arthur. The development in that area is really getting on speed right now. Check out the following repo to follow the progress:

Middleware frontend

In the middleware frontend (https://explorer.aeternity.io/) we haven’t seen lots of progress during the past months. Most recently @atanaskrondev.chain started to contribute here and already solved some issues. Also I have managed and prioritized the project board which can be seen here:

Expect more improvements here in the near future :wink:

And as you know we also have community developed alternatives to that explorer:

AEproject

AEproject has been updated to be Iris compatible:

This is/was kind of a pain for us and for people using the library - we know that! It is definitely a tool that can be used to easily get started. If we further want to improve it we know that there is a big refactoring required and personally I am not sure if it is worth the work - given the minimal benefit it provides right now. I want to hear the opinion of the devs out there! What do you think about AEproject in general?

Recently an idea of @dincho.chain came up to provide a “template”-repository that includes a structure (similar like aeproject init does) which provides basically everything you need to get started. Additionally it would make use of the aesophia_cli to compile contracts whereas aeproject compile currently uses the javascript sdk to compile the contract via the http compiler. In fact you would get a similar stucture like with aeproject init and you would have a README with instructions how to get started and actually use the provided scripts included in that template.

Any opinions about that?

Devmode discussions

This is probably the most anticipated topic of every developer out there that wants to build cool æpps with Sophia smart contracts.

We had that discussion already several times in the past. But this time I am confident that it will be addressed in the near future.

In fact we want to provide a devmode for the node. We need developers to be able to have the best experience when developing smart contracts on æternity and therefore we need several features. We probably won’t be able to provide such a smooth experience like you have for example with Ganache in the first place, but we are in active discussions how to solve this in the best way possible.

If anybody has good ideas in that area feel free to join the discussion here or directly on GitHub. We need to get this topic done right (!)

This is in fact a topic where also input of core developers like @dimitar.chain, @uwigeroferlang.chain or @hanssv.chain is not only required but strictly necessary. I would also welcome some inputs of @gorbak25 here if he likes to join the discussion :slight_smile:

Today e.g. @sborrazas provided some additional interesting input in that area. This feature is also wanted in the middleware for writing tests.

I really want to see a liquid discussion about this here in the public with additional feedback of the community.

The GitHub issue related to that topic is public anyway and can be found here:

Faucet

Recently we also rewrote the aepp-faucet in Node.js. The repository can be found here:

Due to the fact that there is currently no active development of the aepp-sdk-python ongoing we decided to rewrite the faucet in Node.js. The currently deployment is still running the old implementation.

The reason for that is that there is currently activity regarding SRE ongoing. In the foreseeable future we will have a new k8s environment where we can host applications. For everybody interested in that area just have a look hat following repos to see what’s going on there:

Educational videos

In this area @nikitafuchs.chain is mainly involved and constantly publishes new content on YouTube. Check out the following Playlist and provide feedback to us/him:

ÆUnited - Bounties

Recently a new initiative for community engagement was introduced. Read more here:

We published some bounties already and more bounties will follow. Please check out the following repo if you are interested in actively contributing here:

I know e.g. that @genievot is working on the token-migration bounty :sunglasses:

Since we have new cryptographic primitives included in the virtual machine since Iris we thought about providing a bounty to build a similar application like https://tornado.cash on Ethereum. Any opinions about that?

What does the community want to see? What kind of bounties would you like to see being worked on? Please give us some input here.

AEXpansions

Well, for a long time nothing happened here. And I can tell you there is still not much going on right now. BUT I know that @zkvonsnarkenstein.chain is currently working on a proposal for a NFT standard on æternity which I personally am very excited about :smiley:

I am looking forward to discuss that standard. We will of course also clean up that repository and revive the AEXpansions repository.

More information about the NFT standard here:

Outlook / Roadmap

I can tell you that lot’s of other things are ongoing in the background and we will try to get together in the near future to define a roadmap for improving the developer experience. If we have it we will - of course - share it with you here in this thread!

For example we have a request to get MultiSig support in the Wallet and I personally want to see more improvements in the Sophia section. We need a LSP implementation and introduce syntax highlighting in several tools to make Sophia code e.g. more readable on GitHub and in our docs. There is also a desire to revisit the state channel demo again.

We will try to provide a roadmap in that area as soon as possible. But we want to do it right and take the time needed to define it. We won’t rush in everything at once. We (finally) want to get things done!

PS:

  • if YOU have specific needs please share your thoughts with us!
  • NOW is the time to do that!
  • I hope I didn’t forget anything :smiley:
  • in the end I want to thank everybody that helps improving the æcosystem! =)
11 Likes

Discussion about the upcoming NFT standard proposed by @zkvonsnarkenstein.chain happening here:

@genievot submitted a PR for the token-migration backend migration to Node.js which is waiting to be reviewed:

We have a new bounty with a reward of CHF 10000 for the cryptographic experts in our community to develop a ZKP based privacy enabling appplication:

Is there anything you think is urgently needed where you can contribute? Please let us know!

Personally I think we could and probably will set up some bounties for following things:

And please keep in mind that you can also always apply for grants of the foundation here:

6 Likes

One thing I forgot → yesterday we had the kickoff of the new æUnited collaboration program. For everybody who missed that check it out here:

7 Likes

Now the Awesome Æternity list also has a dedicated website:

We are thinking about replacing the documentation hub with this website. Any thoughts on this? Would love to get your opinion here. Personally I never really liked the documentation hub and it’s providing me headaches. For docs generally we have dedicated sites, see below.

Also currently all docs that have currently a dedicated documentation are served with the repository name under the official website url, see:

For the node docs there exists a dedicated URL:

Note: We are looking forward to harmonize these URLs in the near future!

9 Likes

This is amazing.

5 Likes

Thanks. What’s your opinion in regards to the documentation hub if we have this overview which can easily be maintained? Can and should we drop it? :smiley:

1 Like

Feel like every thing is in the place. With easy acces to all AE information.
Awesome!!

4 Likes

Where is easier to keep update the documentation? also if the documentation is keeping on GitHub is it mean we need to do a commit in order to update it?

1 Like

for any update to the documentation it is required to commit on github and open a pull-request.

to be honest I just don’t like the current documentation hub and I think having a definite link-list like in awesome-aeternity is way better and easier to maintain.

we have several components (protocol spec, node, sophia sdk, …) that all have their own dedicated documentation (see above) - so there is no need to maintain everything again in the documentation hub in one place. we could somehow integrate it and we thought about it but it’s in the end IMO not worth the work.

=> these dedicated documentations are meanwhile set up in a way that they are automatically built and published after each merge and for js-sdk and sophia docs we also have versioning in place (from now on)

we generally aim to improve READMEs on various repositories. and in the end - if something is not clear - you can always ask in the forum and you will get an answer and we can improve the README accordingly.

IMO we should take down documentation hub, improve READMEs where needed (proactively and on request basis) and use the awesome-aeternity repo to link to all the important stuff in the ecosystem.

opinions here? :slight_smile:

3 Likes

As discussed we decided to finally sunset the documentation-hub today in favor of a definite link collection included in awesome-aeternity.

If you now try to access the documentation-hub you will be redirected to the awesome-aeternity page.

Feel free to contribute via Github or let us know here if something is wrong/missing.

5 Likes

JS-SDK

We finally released v9.0.0 and subsequently v9.0.1 after we identified some unwanted behavior that came up when initializing the Channel Stamp in the Universal Stamp.

Thanks to @icarus this issue was identified very quickly as he updated the aepp-boilerplate-vue template in the aeUnited bounty program.

We encourage everybody to update to the latest version of the JS-SDK!

Highlights

  • The latest release finally supports the new tx-type PayingForTx which allows to easily use meta-transactions. If you are a service (e.g. custodian) or a game developer you can make use of this to cover the gas costs of your users in a convenient way. Read more about this here:
  • Avoid the deposit trap by default:
    • If you would have provided a deposit value on contract deployment these AE tokens would currently be locked. We now enforce in the SDK that this cannot happen.
    • The idea behind this deposit value was originally to e.g. require some AE for contract deployments in general and to be able to get those AE back if the contract is destroyed and removed from the state tree if not needed anymore. But this has never been implemented.
    • More info: https://github.com/aeternity/aepp-sdk-js/issues/1232
  • Account is not required anymore now for initializing the Universal stamp
    • This has unfortunately been introduced in some earlier release and is now fixed.
    • Currently there is a console warning for this but we decided to remove that already. This will be reflected in a future release.
    • More info: https://github.com/aeternity/aepp-sdk-js/issues/1224
  • We changed the default gas limit value to 25000

What’s coming?

Sophia development

  • We made some update updates to AEstudio:
    • Using v9.0.1 of the JS-SDK
    • Introduced links to the explorer
  • We also updated the old contracts editor which can now be used again:

MDW-Backend

Lot’s of things happening here. It’s best to check GitHub and the recent releases.

There is also a release-please bot now that automatically prepares the releases including release notes for all changes in active development, see:

MDW-Frontend

We finally got some drive here, too. There are already some improvements there - especially the account page and display of AEX-9 tokens. Unfortunately the latest state isn’t released yet. Expect some further news about the explorer in the near future :slight_smile:

We also recently introduced release-please here now, see:

AMM / DEX (“Uniswap clone”)

Here we also made a lot of progress on contract development. The repository is still not public but the AMM also has a high priority. The good thing here is that we can analyze and improve our contract development tooling with this project. There are lots of tests that need to be covered and currently it’s very difficult to be productive with the status quo of the devtools. It’s most important for us now to sort the productivity issues out.

Be assured to get some updates here in the near future. On contract level we are almost done but of course we need to investigate what’s needed to do in the frontend to provide the same user experience like people are used to with e.g. Uniswap or other AMMs out there.

Bounties

This is ongoing and we plan to introduce new bounties in the near future. If you think you can help us and there is a missing bounty for that please let us know! :wink:

@genievot migrated the current token-migration backend to Node.js (currently in review) and @icarus finished the bounty to update the aepp-boilerplate-vue (see above).

Bounties we can currently imagine to additionally provide in the near future:

  • Introduce Sophia Syntax support
  • Implement a Sophia Langague Server Protocol (LSP) and at least one client implementation e.g. for VSCode

Closing words

Not sure if I forgot sth. important. For the Superhero Wallet we will also provide positive news in the near future - stay tuned! :slight_smile:

If you have any questions or suggestions let us know and/or create an issue in the corresponding Github repository.

One additional thing:

  • We signed up for the new GitHub Issues Feature and plan to use this to better manage our tasks and to be more transparent to the community in general.
7 Likes

Great news!! Now æpps can cover the gas fees of their users for a smoother user experience. Also really looking forward to the new AMM / DEX and new bounty ideas :smiley:

1 Like

does the amm/dex build on portal?

2 Likes

the AMM can handle tokens on aeternity like e.g. Uniswap does on Ethereum. it’s independent of Portal DeFi.

of course IF somebody would provide a token bridge e.g. to wrap ETH or BTC on aeternity those wrapped AEX-9 tokens could be traded there.

@bogdan will share some insights about the AMM development & testing today.

2 Likes

this is technical discussion. let’s keep it technical please. open another thread to discuss this topic if you want to and I will step out of this discussion because I cannot comment it. either we find people to provide liquidity or not.

NOTE

  • this thread is about æpp development and developer suite and tools
  • every (!!!) unrelated post will be deleted from me from now on (without further notice!)
  • please stick to this and open other threads for discussing other topics (especially exchange and liquidity topics!!!)
3 Likes

thanks;for all developer work!amzing!

3 Likes

While I was working on the contract side of AMM I needed to run different tests in isolation. I had to reset the state of the contracts by deploying the whole stack of contracts over and over for each test. Meanwhile the core devs provided us an awesome feature for rolling back to a certain block height, so I’m able to discard the effects of some tests in order to use just the initial part which is common for multiple tests. I made a recording of such test running:

From minute 0 to 1:13 you will see the contract deployments. From 1:13 on I run the tests and after each test the state of the chain is rolled back in order to run independently from the previous tests and have a clean initial deployment to rely on in subsequent tests.

6 Likes

Hey there,

it’s been a while since the last update here. Be assured that we are continuously working on improving the developer ecosystem for aeternity.

I will sum up the most important activities around devtools in general as usual.

aepp-sdk-js

Last week we finally managed to roll out v10.0.0-beta.1 of the sdk, see:

This is a huge milestone because it now integrates the standalone calldata-lib that allows to encode and decode calldata for aeternity Smart Contracts, see:

What does this mean? It means that we do no longer require the (hosted) http compiler to simply encode and decode calldata for Smart Contracts. From now on you can also initialize contract instances in the SDK by just using ACI and bytecode. No need to provide the full sourcecode anymore. If your aepp needs to interact with an already deployed smart contract and if there is no need to deploy a contract you can also initialize your contract instance by just providing ACI and the contractAddress.

How to initialize your contract instance is described in the usage guide:

Please be aware that this is a major release that contains several breaking changes. All the breaking changes are described in the migration guide here:

This is not the only change. We provided some bugfixes and other enhancements, too. But the integration of the calldata lib is by far the most important change here.

We are happy to find many testers that provide feedback to us. If you find any problems please open an issue on GitHub!

Huge thanks from my side here goes to @dincho.chain, @davidyuk, @subhod-i & @bruteforce.chain! :slight_smile:

AEproject / devmode

With the help of the core team - specifically @uwigeroferlang.chain - we made good process with devmode that is speficially designed to be used in local development of smart contracts.

The upcoming v4.0.0 of AEproject is currently in development by @philipp.chain and will incorporate the devmode by default. It will also include utilities to rollback to a certain state of the chain (e.g. to the state after all contracts have been initially deployed) and to easily perform event related tests.

As soon as we think this can be used in the public we will provide a beta release here, too and let you know!

MDW Frontend / Explorer

After several changes and enhancements we finally made a new release v0.4.0, see:

It is now possible to see AEX-9 tokens in the account page. We also introduced a dedicated page for the tokens.

It is planned to introduce a tokenlist which will become even more important if we see more serious projects building on aeternity, see:

What we can already say is that we will have a wrapped AE token, similar to WETH on Ethereum. The wrapped AE token will be used in the upcoming DEX implementation (Uniswap v2 clone).

There are also several other improvements. Specifically related to details of contract calls. You now see the entrypoint that has been called, the params that have been passed and of course if the contract call was successful or has been reverted.

Also for accounts you can now see the balance (finally) and you see if it is a basic account or a generalized account. At the moment almost all accounts are basic. Let’s see if we get some adoption for generalized accounts in the near future :slight_smile:

Of course there is still lot of things to improve and to be added. My thank here goes to @atanaskrondev.chain! :slight_smile:

You can check the explorer out here:

In general we now have a product owner in the team. @menabdeirakli will independently collect requirements and rethink the whole explorer from a product point of view. provide feedback here: Questionnaire about æternity Explorer (Middleware Frontend)

MDW Backend

It has been a while here since the latest release. The team made a lot of improvements and also introduced new features. There had been some difficulties that prevented an earlier release. We expect v1.3.0 to be released very soon, ideally this week.

See all the changes here:

Thanks here go to @sborrazas @cryptodao21ae & @philipp.chain! :slight_smile:

DEX / AMM

This is probably the project most people out there are interested in. When we met in Sofia in October this year we aimed to develop a clone for Uniswap v3 which was almost finished at that time already. Uniswap v3 in general is way more complex compared to Uniswap v2 and we also faced some issues with native support for Bitwise operations which are very helpful for Uniswap v3 contracts.

Meanwhile the Bitwise operations have been added to Sophia but we won’t be able to actually make use of it until the upcoming Ceres hardfork.

After some discussions in the past weeks we decided to initially go with a clone Uniswap v2 instead of v3 for these reasons. (knowing that we almost finished implementation for v3 already)

The good message is: contract development is finished and we already started implementing the UI.

The smart contracts are currently in internal review. After this review is done (matter of weeks) we will:

  • publish the repository with the contracts (currently still private)
  • have an external security audit
    • I am already in discussion with a service provider in that regards

We expect to be able to release a working version on testnet this year around Christmas that you could play around with.

For the mainnet release we definitely want and need to wait for the external security audit.

Thanks here go to @bogdan, @keno.chain & @Niq! :slight_smile:

NFT Standard

We continued the discussion about the AEX proposal and we finally agreed upon an interface. You can check the whole discussion around the proposal here:

@zkvonsnarkenstein.chain will shortly provide the Pull Request to the official AEX repository which we can then review before finally providing a reference implementation for it.

Thanks to everybody involved in the discussions here, especially @zkvonsnarkenstein.chain! :slight_smile:

Superhero Wallet

We recently had 3 releases where mainly refactoring and smaller improvements have been addressed, see:

Currently the development of Superhero Wallet is on hold. There is still being worked on UX topics, but no coding. The focus of the development currently is on DEX / AMM.

Also thanks to everybody involved here! :slight_smile:

Bounties

Almost all open bounties are in progress or have already been reviewed and accepted. See a complete list of bounties and their current state here:

@genievot helped us migrating the backend of the migration-aepp to Node.js and now we finally managed to have it working again. Read more here: https://blog.aeternity.com/migrating-erc-20-ae-tokens-to-ae-mainnet-9fe4c8a74be1

@emmanueljet created an aepp boilerplate for React that can be found here: https://github.com/emmanuelJet/aepp-boilerplate-react

More bounties will be announced shortly.

Closing words

If you are a developer and want to help us in a specific way please get in touch with us. Either here in the forum or on Discord.

If you have specific requests regarding Devtools please let us know, too! :wink:

11 Likes