-
Notifications
You must be signed in to change notification settings - Fork 91
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
Factory Contract: Enable switching between different recipient curation mechanisms #49
Comments
I'd like to propose this contract as a template for our curation mechanism interface. The curation mechanism must expose two functions, allowing our contracts to lookup up a registrant's address by index or index by address: function getIndexByAddress(address _registrant) public returns (uint) {
...
} & function getAddressByIndex(uint _index) public returns (address) {
...
} |
I don't think the funding round or factory contracts need to have an Our funding round contract would use |
This interface seems simpler. But we need a method to remove recipients to free up slots and at the same time guarantee that recipient at the given index will not change in the middle of the voting period. How would you solve that? |
This limit is not a constant and can change from round to round. We need a way to ensure that the number of recipients in registry is less or equal to the maximum vote options limit in current MACI instance. |
Assuming That functionality can be added in an upgrade if/when it is necessary.
In I think that |
We may not reach the upper limit in the first few rounds, but there should be a way to remove invalid recipients and duplicates.
To be able to add this functionality, the system must be designed in a way that supports it. The registry contract that you proposed is not aware of the funding round contract, hence the question:
The version of the contract you're referring to is out of date. Some MACI parameters, including
It's possible to get it straight from MACI https://github.com/appliedzkp/maci/blob/master/contracts/sol/MACI.sol#L57, but again, the registry needs to be aware of current round in order to do that. I know that both of these issues could be solved. But it may be easier to use different interface/architecture. |
Add method for setting recipient registry proxy:
A registry proxy must implement the following interface (to be discussed):
Then in our contracts we can use it like that:
The text was updated successfully, but these errors were encountered: