eigerco / nebula

A soroban contract library
https://nebula.eiger.co
Apache License 2.0
7 stars 2 forks source link

Nebula new features and enhancements #80

Open mariopil opened 1 year ago

mariopil commented 1 year ago

This task is to collect new ideas on how to improve Nebula. What can we do:

Write down everything that comes to your mind.

geofmureithi commented 1 year ago
  1. Connect to wallet This would allow one to connect to a wallet, initialize and invoke functions. This would make our wizard and docs interactive.
geofmureithi commented 1 year ago
  1. Wizard compile & download Allow a user to edit,compile and download contracts.
eloylp commented 1 year ago

Increase trust by adding Fuzz tests #83

eloylp commented 1 year ago

I think once we start making our contracts more configurable, i.e "adding more voting algorithms to the governance contract" , my vote is to invest time in making this variants configurable through the Wizard UI.

I think the wizard UI will be very useful for newcomers who come from different languages. Or even the ones they are writing smart contracts for the first time.

I know there are certain technical difficulties (inheritance and so on) , but maybe, if after a bit of more research, we don't find the way to reuse contract code, a little duplication probably doesn't hurt too much (we can try to minimize this, like trying to reuse part of testing infra).

eloylp commented 1 year ago

As the contract catalog grows, think about adding a search bar for contracts that supports tags i.e:

"As an user who wants a governance contract with quadratic voting, I want the code to be provided by typing 'governance' and 'quadratic' in the search bar."

eloylp commented 1 year ago

Related to this. Would it be positive to connect with other projects that also provide smart contract catalogs ? Maybe marking them as "external" . We could transform the wizard UI in a great Soroban Smart contract search engine ?

mariopil commented 1 year ago

An idea came to my mind how we could improve the wizard UX. Instead of having a plain code display with a list of contracts to choose from, let's divide the wizard into 3 parts/dialogs:

  1. Display a list of available contracts to choose from in a form of fancy icons - each contract would have its own unique colourful icon, plus a search bar would be available too.
  2. User selects a contract and another dialog opens up with fields to setup the contract (e.g. ticket price for Lottery, min number of participants required, etc.)
  3. Finally a code is generated which user could copy and invoke.

Untitled document (1)

geofmureithi commented 1 year ago

User selects a contract and another dialog opens up with fields to setup the contract (e.g. ticket price for Lottery, min number of participants required, etc.)

This would be tied to init right?

mariopil commented 1 year ago

Yes, but we could think how to handle other functions too.

geofmureithi commented 1 year ago

Ok but hardcoding things makes it hard to extend. Do we wanna lose the ability to reuse the contracts?

mariopil commented 1 year ago

No hardcoding, wizard would generate the 2nd dialog automatically from the code by parsing function inputs.

geofmureithi commented 1 year ago

I mean the final output code would have variables like ticket_price in the code, right?

mariopil commented 1 year ago

I think it could be done as follows:

Everything would be fully automated, no hardcoding. The only thing we would have to stick with is the init function of the contract so that UI knows where to start from.

mariopil commented 1 year ago

That's only an initial idea, we can create separate task for that and discuss it more. I'm open for other proposals :)

mariopil commented 1 year ago

I've moved it to separate issue: https://github.com/eigerco/nebula/issues/85

eloylp commented 1 year ago

Improvements regarding docs and wizard ui interoperability: https://github.com/eigerco/nebula/issues/86

eloylp commented 12 months ago

More possible future improvements:

102

103

eloylp commented 12 months ago

Added more definition of the search engine idea here: https://github.com/eigerco/nebula/issues/104

geofmureithi commented 11 months ago

Added some ergonomic macros here #106

eloylp commented 11 months ago

Dropping this here, looks like Stellar is funding for making educative content. It could be a Dapp for example. Maybe interesting for nebula, using as building block our contracts.

https://github.com/stellar/sorobounties

geofmureithi commented 11 months ago

All these need Pulsar API

Connect to wallet Wizard compile & download

Related to https://github.com/eigerco/pulsar/issues/20