DAO Split Solidity Code Ready for Review

I posted this in Discord (link) too but things can get lost there so I’m making this thread :slight_smile:

Over the past few weeks, I have been working on implementing @verb-e /the verbs daoSplit specification from GitHub. I am eager to learn and would truly appreciate everyon’s feedback or thoughts that they may have on it. Once we’ve discussed it further and made any desired changes, I am considering submitting a proposal to request 10,000-30,000 USDC. This funding would be utilized solely for a thorough codeArena review, as I aspire to meet the highest quality and safety standards.

Here is the repo: GitHub - OrangutanWithAKeyboard/NounsSplit

(Edit: Added discord link)

1 Like

Thanks for sharing :slight_smile:
Did a quick read of your code just now, a couple of things stood out quickly:

  1. You’re assuming this contract is holding the DAO’s ETH and ERC20s, and we think it’s not a correct assumption to make; rather the assets are with the treasury and it needs to support split-related functions that send assets.
  2. You’re sending assets to individual Nouner accounts, while our design spins up a new DAO and sends asset to the new DAO’s treasury; it’s a big chunk of our design and current coding work.

Wanted to also say that while we really appreciate the initiative, we’re heads down building this thing, trying to ship it as quickly as possible, so our bandwidth to continue supporting parallel efforts is very limited.

You’re of course more than welcome to review our work when it’s ready for review! There will be a big pull request on the monorepo, and we’d really love extra eyes on it especially since it’s such a non-trivial change.

Thanks!

Thank you for your prompt response and for taking the time to review my code.

With regard to point #1, I believe you may have a missunderstanding. I would like to draw your attention to the documentation and the code for triggerSplit(). It is already designed to request the current Nouns treasury to transfer funds to a newly created vanilla rage quit DAO. The whole treasury will of course never be held in the split contract.

Moving on to point #2, I understand that the new DAO is designed to have a vanilla ragequit feature in place by default based on your spec on github: “New DAOs are deployed with vanilla ragequit in place; otherwise it’s possible for a New DAO majority to collude to hurt a minority”. Has this design changed where there is now voting capabilities?

Lastly, I appreciate your transparency in informing me about yours and the team’s focus on coding at the moment. While I understand that the work may be conducted in a private repository, I would like to emphasize the benefits of leveraging community contributions through an open-source approach. As a long-time developer involved in various projects, I believe in the power of crowdsourcing and collaboration.

Please do not interpret my inquiry as confrontational; rather, I have been actively posting everywhere I can trying to find Nouns-related solidity needs to contribute to for over a month, and the lack of responses has been somewhat discouraging. It would be disheartening to learn that the core Nouns team is working on the Solidity in an exclusive repository, as I am eager to support the project in any way I can and I am also sure many devs have come and sadly gone because the lack of opportunity to help or even discuss.

Thank you for your understanding, and I look forward to your response.

Just a quick note until the next time I can write in depth: we are building everything in public… you just need to go to the monorepo and find the branches we’re using.

However at the moment they are pretty messy so we’re not inviting deep reviews. There are no secrets here.

Thank you for the quick reply. I’m happy to put my branch on pause and review for security the branch you are reffering to which I previously thought would be in the split repo: GitHub - verbsteam/dao-split-spec

For anyone else interested in following along the branch I believe @verb-e is referring to is: GitHub - nounsDAO/nouns-monorepo at verbs-dao-v3-dao-split

Please do let me know if there is any other solidity work that you may need help with :slight_smile: