Open mariopil opened 1 year ago
Increase trust by adding Fuzz tests #83
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).
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."
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 ?
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:
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?
Yes, but we could think how to handle other functions too.
Ok but hardcoding things makes it hard to extend. Do we wanna lose the ability to reuse the contracts?
No hardcoding, wizard would generate the 2nd dialog automatically from the code by parsing function inputs.
I mean the final output code would have variables like ticket_price
in the code, right?
I think it could be done as follows:
init
function that initializes the Lottery.init()
with the params selected by usercreate_lottery
, play_lottery
, etc.)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.
That's only an initial idea, we can create separate task for that and discuss it more. I'm open for other proposals :)
I've moved it to separate issue: https://github.com/eigerco/nebula/issues/85
Improvements regarding docs and wizard ui interoperability: https://github.com/eigerco/nebula/issues/86
More possible future improvements:
Added more definition of the search engine idea here: https://github.com/eigerco/nebula/issues/104
Added some ergonomic macros here #106
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.
All these need Pulsar API
Connect to wallet Wizard compile & download
Related to https://github.com/eigerco/pulsar/issues/20
This task is to collect new ideas on how to improve Nebula. What can we do:
Write down everything that comes to your mind.