Skip to content

Societal Milestone 1 Grant Submission#628

Merged
randombishop merged 3 commits intow3f:masterfrom
sctllabs:master
Nov 28, 2022
Merged

Societal Milestone 1 Grant Submission#628
randombishop merged 3 commits intow3f:masterfrom
sctllabs:master

Conversation

@gfox1
Copy link
Copy Markdown
Contributor

@gfox1 gfox1 commented Nov 18, 2022

Milestone Delivery Checklist

Link to the application pull request: w3f/Grants-Program#1249

@randombishop randombishop self-assigned this Nov 18, 2022
@randombishop
Copy link
Copy Markdown
Contributor

@gfox1 Thanks for submitting this delivery.
I'll work on evaluating it and respond with feed back in the coming days...

@gfox1
Copy link
Copy Markdown
Contributor Author

gfox1 commented Nov 21, 2022

Thanks @randombishop! Happy to answer any questions you may have.

@randombishop
Copy link
Copy Markdown
Contributor

Hey @gfox1 !

I spent some time today playing with your codebase and it looks good so far, well done!

Before I write my evaluation, I have a few questions:

  1. Testing guide:
    I managed to run the manual tests against a dev node fine, though I didn't understand a couple of things:
  • How come did the DAO end up with 800 million tokens in its treasury? Is it just a mock behaviour to facilitate testing right now that will be changed later?
  • When I did the daoCouncil-propose step, I specified 2 as a threshold. But what if I specified 1? Would it mean I would just need my own signature? Feels like I am missing something, shouldn't the minimum number of signatures required be part of a global policy or something? Otherwise any council member can just set it to one and pass whatever they want?
  1. Unit tests
    I found unit tests in each pallet folder and assumed I could run them with cargo - all passed.
    But could you please add a How to run unit tests section in your README.md?

  2. Article
    You commented No article in your delivery; does it mean this got replaced by the testing guide? If yes, please put a link to the doc. Nice bonus would be to add some context and explanations to the guide to make each step easier to understand. Like what is actually happening under the hood at each step.

  3. Frontend
    I tested with both Polkadot-js (all the guide) and https://github.com/sctllabs/societal-front-end (a couple of steps)
    and they both worked fine.
    Is there any reason why you didn't include a link to the customized template in the delivery table?
    (I would have expected a link since you mentioned "minor UI updates" in the application.)

Next, I will be deep diving into the pallets source code; shooting for the end of this week to finish my evaluation.

Looking forward to hearing back from you in the meantime.

@gfox1
Copy link
Copy Markdown
Contributor Author

gfox1 commented Nov 23, 2022

Hey @randombishop, thanks for looking at this so quickly!

Here are the answers to your questions:

How come did the DAO end up with 800 million tokens in its treasury? Is it just a mock behavior to facilitate testing right now that will be changed later?

  • Yes, it was just a mock behavior coded in the assets pallet to perform this function. We are updating it to a user inputted value.

When I did the daoCouncil-propose step, I specified 2 as a threshold. But what if I specified 1? Would it mean I would just need my own signature? Feels like I am missing something, shouldn't the minimum number of signatures required be part of a global policy or something? Otherwise any council member can just set it to one and pass whatever they want?

  • Yes, if you specified 1 then only one of the council members would need to vote on the referenda to make it pass. We have made it like this to allow the DAO to choose how they would like the system set up. They can set up the organization to only have one council member that needs to vote or set the threshold to the max number of council members. In essence we are letting the DAO choose.

I found unit tests in each pallet folder and assumed I could run them with cargo - all passed. But could you please add a How to run unit tests section in your README.md?

  • We have added a Unit Test section to the README, instructing the user how to run the unit tests.

You commented No article in your delivery; does it mean this got replaced by the testing guide? If yes, please put a link to the doc. Nice bonus would be to add some context and explanations to the guide to make each step easier to understand. Like what is actually happening under the hood at each step.

  • I have updated the delivery to include a link to the testing guide as the article. This will replace the article.

Is there any reason why you didn't include a link to the customized template in the delivery table?

  • I have updated the delivery to include a link to a branch of the Societal UI with the minor edits to interact with the pallets.

Please let me know if you need something else. Thanks!

@randombishop
Copy link
Copy Markdown
Contributor

@gfox1 Thanks for incorporating my remarks and updating the delivery!

Now looking into the pallets source code, I noticed it's mainly based on substrate codebase from frame/collective, frame/treasury and frame/membership.

Can you please provide a small documentation on the reasons why these pallets were copied and adapted rather than imported and re-configured or extended? What are the differences between substrate implementation and yours?

@okalenyk
Copy link
Copy Markdown
Contributor

Hi, @randombishop! Thanks for the review.

The basic idea of re-purposing the pallets is described at the top of each pallet, e.g: dao-collective

Basically, we needed to store the data and utilize the function similar to the way it's done in the pallets, except of one thing - we had to store the data per each DAO. In other words we had to update the way the pallet is handling the storage, e.g - StorageMap instead of a StorageValue or StorageDoubleMap instead of a StorageMap. We couldn't achieve this by simple re-configuring the pallet.

In the next iterations we're going to extend the pallets we re-used, for instance, adding some extended logic for the treasury pallet to handle custom assets or re-work the governance to make use of a custom token(asset) for governance.

P.S. We're using the pallets described above for managing our blockhain.

@randombishop randombishop merged commit 8686f42 into w3f:master Nov 28, 2022
@randombishop
Copy link
Copy Markdown
Contributor

@gfox1 @okalenyk
Happy to inform you that your delivery is accepted, here is the evaluation:
https://github.com/w3f/Grant-Milestone-Delivery/blob/master/evaluations/societal_1_randombishop.md

I'll forward your invoice to the finance team, please allow for up to two weeks for processing.

@gfox1
Copy link
Copy Markdown
Contributor Author

gfox1 commented Nov 29, 2022

@randombishop This is great news! Thanks so much for your evaluation. Looking forward to submitting milestone 2.

@RouvenP
Copy link
Copy Markdown

RouvenP commented Dec 7, 2022

hi @gfox1 we're currently switching from USDT on Ethereum to Polkadot/Kusama. Would you be open to receive USDT on Polkadot(Statemint) or Kusama(Statemine)?

@gfox1
Copy link
Copy Markdown
Contributor Author

gfox1 commented Dec 7, 2022

Hey @RouvenP, if possible can we continue with the payment of USDT on Ethereum. This will make accounting much easier on our end. Thanks.

@RouvenP
Copy link
Copy Markdown

RouvenP commented Dec 9, 2022

hi @gfox1 absolutely, we will proceed with UDST on Ethereum. Thanks for your feedback.

@gfox1
Copy link
Copy Markdown
Contributor Author

gfox1 commented Dec 10, 2022

Thanks @RouvenP!

@RouvenP
Copy link
Copy Markdown

RouvenP commented Dec 16, 2022

hi @gfox1 we transferred the payment today.

@gfox1
Copy link
Copy Markdown
Contributor Author

gfox1 commented Dec 16, 2022

Hi @RouvenP, thanks! We have received the payment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants