Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

App Scaffold #3

Open
4 of 5 tasks
Tracked by #1
Oba-One opened this issue Oct 1, 2024 · 6 comments
Open
4 of 5 tasks
Tracked by #1

App Scaffold #3

Oba-One opened this issue Oct 1, 2024 · 6 comments
Assignees
Labels
documentation Improvements or additions to documentation infrastructure API and website deployment

Comments

@Oba-One
Copy link
Member

Oba-One commented Oct 1, 2024

Done State

  • Setup base clientside code for app
  • Incorporate the Allo Yeeter starter kit for setup
  • Create component files and page routes
  • Simplify UI for Yeeter (separate from Create Round)
  • Connect allocate function with form

Technical Requirements

  • Use Nextjs for React Framework
  • All styling done with TailwindCSS
  • Follow the component structure outlined by the dev guild.

Resources

@Oba-One Oba-One added documentation Improvements or additions to documentation infrastructure API and website deployment labels Oct 1, 2024
@JulianKingman
Copy link
Contributor

@Oba-One Some shower-thoughts:
As I get into how the allo-2-sdk and works, I'm noticing there are certain well-defined ways of doing things, which feels like doing things the "allo" way. For example, having the Strategy interface hook into certain parts of the Allo Kit form (creating rounds, rounds contain parts of the form generated by the allo-2-sdk).

What we're kind of doing is pulling various things apart and simplifying them, but it actually makes things more complicated to do it this way. For example, rather than having the Yeeter strategy return the same format as other strategies, we have to either take it out of the allo-2-sdk, which may go against what is ultimately desired for Yeeter (my possibly-wrong assumption was always that this is something they'd want to integrate into their broader suite of tools), or make it work in a way that other allo-2-sdk functions don't exactly work.

If I worked at GitCoin and was designing this from scratch, I would design it in the "allo" way:

  • Integrate rounds
  • In the Create Round form, register participants using the allo "register" function
  • Deploy the strategy with the participants in the constructor
  • Have a separate pool for each round
  • Have a separate form for disbursing the funds, using the allo "disburse" function

But, I recognize that's not the assignment, and would make this more complicated. I'm just a bit confused, as I look at all this formal structure, as to why we're not using it.

@JulianKingman
Copy link
Contributor

Secondly, regarding disbursement amounts, I'd like to confirm what the underlying goal is for Yeeter with regards to payment amounts. I see a few different possibilities:

  1. Enter an amount, disburse that amount evenly among all participants
  2. Enter an amount, for each participant enter a percentage
  3. Enter an amount for each participant

It seems we're going for #2, but it seems like the least useful/intuitive option to me, which is why I'm interested in the motivation for the feature in the first place. Percentages will be a bit finicky, because they have to add up to 100% perfectly, and it's not straightforward to reason about how much is being sent to each recipient. What do you see as the objective with distributing?

@Oba-One
Copy link
Member Author

Oba-One commented Oct 10, 2024 via email

@Oba-One
Copy link
Member Author

Oba-One commented Oct 10, 2024 via email

@Oba-One Oba-One added this to the Allo Yeeter Prototype milestone Oct 10, 2024
@JulianKingman
Copy link
Contributor

Update:

The minimal preliminary UI is set up, and the yeeter strategy factory deployment is working, but the pool deployment is getting stuck at the signing step. I worked with @Utilitycoder on this for several hours, at first it seemed that there was a gas calculation issue, but when I manually set the gas price, it would get stuck in "pending" indefinitely. When Lawal examined it, he found it was failing when checking the profile permissions, but... this doesn't really make sense.
To explain, the Allo contract (actually the Registry contract) checks that the wallet calling the create pool function has permissions to use the profile that's being used in the create pool transaction, and if it fails, it rejects the transaction. The reason this is a strange failure is because if I directly test the profile ID and the wallet address with the Registry contract, it completes successfully.
I'll look into this further, try to manually perform each step to see if I can get it to succeed. I'll post the above in the telegram group as well, in case Henry has any off-the-cuff insights.

@JulianKingman
Copy link
Contributor

Pool creation is working, final step: yeet!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation infrastructure API and website deployment
Projects
Status: In progress
Development

No branches or pull requests

2 participants