colonyNetwork icon indicating copy to clipboard operation
colonyNetwork copied to clipboard

Allow more than one instance of an extension to be installed

Open area opened this issue 4 years ago • 3 comments

To make changing initialization parameters easier, we need to allow one extension to have multiple installations at a time, and for those installations to be findable by the frontend (likely through an event we don't have yet).

area avatar Jun 10 '21 10:06 area

Token locking/unlocking relies on us knowing if an extension is a network managed extension.

area avatar Jun 11 '21 11:06 area

If we're going to have many simultaneous installations, we can likely provide an "is managed" lookup via a extensionAddress => isOfficial mapping, but probably not a "give me extension" lookup, since by necessity there may be an arbitrary number of extensions. So this change would require knowledge of the extension address to exist external to the contracts. As long as we are ok with that, then this shouldn't be too problematic. IIRC that isn't a problem, since an earlier prototype which relied on this knowledge was (fortunately) abandoned.

Other options are to make the mapping [colonyAddress][extensionAddress] => isOfficial, or perhaps even better extensionAddress => colonyAddress which arguably provides the most information (if the mapping is empty, it is not an official extension, but if it isn't, we know which colony the extension is installed in).

kronosapiens avatar Jun 14 '21 18:06 kronosapiens

extensionAddress => colonyAddress

Given this doesn't cost extra than the other options, I think this is probably the winner.

Just as a reminder, remember that any implementation has to work upgrading from the current approach.

area avatar Jun 16 '21 14:06 area